我正在使用JPA 2 + Hibernate 4.2.6进行Java项目,并且出现了奇怪的现象。
在我的模型中,我有两个相关实体:Question
和Answer
@Entity
public class Question {
// ...
@OneToMany(mappedBy = "question", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private Set<Answer> answers;
// ...
}
@Entity
public class Answer {
// ...
@ManyToOne(optional = false)
@JoinColumn(name = "question_id", nullable = false)
private Question question;
// ...
}
这非常有效:Answer
与某个特定Question
对象相关的所有都已正确加载。
但是现在我需要将answers
collecton 的tipe
从更改Set
为List
。我更改了类型并再次运行了该应用程序,现在在answers
…中出现了多个重复项,为什么可能呢?我知道List
允许重复,但是我的数据库中没有重复的记录,那么为什么要得到这些?
我在早期版本的Hibernate中读到一些类似的错误,但我希望它们在最新版本中得到解决…我错了吗?
注意 我需要更改Set
为,List
因为我需要保留有关答案 顺序的 信息,并且可能需要更改此顺序。
您很可能会重复,因为使用fetch = FetchType.EAGER时,Hibernate
使用外部联接来获取联接表中的数据。
尝试删除渴望获取的内容以进行确认。在这种情况下,您应该删除急切的访存,保留Set而不是List或编写JPQL查询以准确检索所需内容。
从Hibernate
doc中
:
建议的方法是在所有静态提取定义上使用LAZY并通过JP-QL动态覆盖此选择。
我在Hibernate(4.3.0)中遇到了一个问题,其中as单向@OneToMany返回重复项。 我的数据库结构(MySQL与InnoDB),其中作为“条目”表与“entry_address”表有1: N关系。“条目”表是主表,“entry_address”是“条目”表的子表。 下面是“entry”实体的最小代码。 以下是“entry_address”实体的最小代码: 这是Hibernate完成
我是一个新的探索Spring启动和冬眠,并面临一个问题,我认为这并不是新的。然而,在所有的建议都到位的情况下,我仍然找不到一个方法来解决我目前面临的问题。 你们谁能指出我错在哪里吗? 以下是场景- 我有一个Category类,并且Category类的每个实例可以有许多子Category的实例。 我已经使用@OneTomany注释设置了关系。然而,当试图将记录保存到数据库时,我面临的是org.hib
我有两个映射到OneToMany、ManyToOne的类,我得到了异常: org.hibernate.annotationException:mappedBy引用了一个未知的目标实体属性:entity_package.ticketentity.ownerEntity in entity_package.userentity.ownedTickets 公共类TicketEntity实现可序列化{ 怎
本文向大家介绍Oracle 获取表注释和列注释,包括了Oracle 获取表注释和列注释的使用技巧和注意事项,需要的朋友参考一下 全部表 表的注释 列的注释 相应的还有dba_col_comments,all_col_comments,这两个比user_col_comments多了ower列 以上所述是小编给大家介绍的Oracle 获取表注释和列注释,希望对大家有所帮助,如果大家有任何疑问请给我留言
我有一个数据库,它的一些表之间有关系,例如,我必须表Person和Company,它们的Id之间有一个一对多的关系,这是在Hibernate生成的表名Person_Company中构建的。当我在java中使用@onetomany和@manytoone注释时,它在它们之间建立了关系,但不是根据Person_Company表,我只使用表的Id什么是正确的注释?
如果我有用@component注释标记的bean。而是不同文件夹中的两个bean。一个在com.mycompany.core.bean1中,另一个在com.mycompany.dao.bean2中。当我试图在Bean2中自动连接bean1时,就像: 我需要在bean2中导入带有bean1的包吗?还是它会自己扫描它? UPD:我知道同名的问题。但问题是完全不同的。所以请注意我的问题,如果你现在它,不