Возможно ли в Hibernate встраивать только одно свойство стороннего объекта в другой объект, а не полный объект?
Это моя проблема:
@Entity
@Table(name = "ELEM")
public class Element {
@Id
private long id;
@Column(name = "CODE")
private String code;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "FOLDR_ID", nullable = false)
private Folder folder;
}
@Table(name = "FOLDR")
public class Folder {
@Id
private long id;
@Column(name = "LABEL")
private String label;
// dozens of other columns
// ...
}
Это работает нормально,но теперь в элементе я хочу иметь только метку, а не полный объект папки.Примерно так:
@Entity
@Table(name = "ELEM")
public class Element {
@Id
private long id;
@Column(name = "CODE")
private String code;
// HOW TO ANNOTATE THIS?
private String folderLabel;
}
Зачем мне это?Потому что я думаю, что это должно быть более производительным.Создается меньше объектов и выбирается меньше столбцов.
Я пытался использовать @SecondaryTable
, но узнал, что это работает только для однозначных ассоциаций, т. Е. Folder.id
соответствует Element.id
, чтодело тут не в этом.
Можно ли это как-то сделать в Hibernate, или полный инородный объект - единственный шанс?