gpt4 book ai didi

java - 具有两个查找值的 Hibernate OnetoOne 映射

转载 作者:行者123 更新时间:2023-11-30 05:05:31 24 4
gpt4 key购买 nike

我有一个类,它有两个查找值(一个用于名称,一个用于类型)

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;
}

问题在于不同的 someAttr 对象之间共享相同的 name_lk_id。每次我运行它我都会得到:“org.hibernate.HibernateException:找到了多个具有给定标识符的行”。

我可以获取属于具有projectId的特定someAttr的nameLookupValue,而不是获取具有相同“lk_id”的多个Lookup对象吗??

最佳答案

一个 someAttr 实例与两个 Lookup 值实例关联。这不是一对一的关系。为此,您需要使用一对多关系。您可以在类中使用辅助方法来从列表/集合中检索适当的 Lookup 实例。

关于java - 具有两个查找值的 Hibernate OnetoOne 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5225882/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com