gpt4 book ai didi

Hibernate:一对多关系中集合的空索引列

转载 作者:行者123 更新时间:2023-12-05 01:08:12 25 4
gpt4 key购买 nike

我正在尝试使用子实体列表映射 Hibernate 中的一对多/多对一关系。对其他关系的 Set 执行相同的操作可以找到,但我需要一个包含子实体顺序的 List。

到目前为止我所做的是:

@Entity
@Table(name="event")
public class Event {
@OneToMany(mappedBy="event", fetch=FetchType.EAGER)
private List<Message> messages; //Message entitiy is the child
//getters+setters+and some other stuff like id
}

这是多对一的一面:
@Entity
@Table(name="message")
public class Message{
@ManyToOne
@JoinColumn(name="eventid")
private Event event;
//getters+setters+and some other stuff like id
}

在此我可以插入一条消息,它将被添加到数据库(postgres)中。但是问题在于将消息作为列表获取:当只添加一个并且在数据库上可见时,我得到了相同消息的 2 个结果!

当然,我做了一些研究,发现List上需要一个索引。但我什么都没试过,解决了。我得到的只是一个异常(exception):“用于集合的空索引列......”。我在这里和通过谷歌找到的解决方案似乎都没有,而且有太多“解决方案”,我真的不知道其中哪些应该有效!

有没有人知道如何实现这种关系?我会很高兴有任何建议!

谢谢!

最佳答案

我在旧版本的 hibernate (3.5.6) 上遇到了同样的问题,并找到了一个很好的非侵入性解决方法:尝试更改您的 List<Message>Set<Message>对象和用途 HashSet而不是 ArrayList .

祝你好运!

关于Hibernate:一对多关系中集合的空索引列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17419938/

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