У меня есть класс, который имеет два значения поиска (одно для имени и одно для типа)
public class someAttr {
private Long someAttrId;
private Long projectId;
private Lookup typeLookupValue;
private Lookup nameLookupValue;
getters & setter...
@OneToOne(fetch=FetchType.LAZY, cascade=CascadeType.ALL)
@JoinColumn(name = "type_lk_id", referencedColumnName = "lk_id", insertable = false, updatable = false)
public LookupValue getTypeLookupValue() {
return typeLookupValue;
}
public void setTypeLookupValue(Lookup typeLookupValue) {
this.typeLookupValue= typeLookupValue;
}
@OneToOne(fetch=FetchType.LAZY, cascade=CascadeType.ALL)
@JoinColumn(name = "name_lk_id", referencedColumnName = "lk_id", insertable = false, updatable = false)
public LookupValue getNameLookupValue() {
return nameLookupValue;
}
public void setNameLookupValue(Lookup nameLookupValue) {
this.nameLookupValue= nameLookupValue;
}
Проблема в том, что один и тот же name_lk_id используется разными объектами someAttr.
Каждый раз, когда я запускаю его, я получаю:
"org.hibernate.HibernateException: найдено несколько строк с данным идентификатором".
Могу ли я получить nameLookupValue, которое принадлежит определенному объекту someAttr с projectId вместо получения нескольких объектов Lookup с одним и тем же "lk_id" ??