gpt4 book ai didi

hibernate - 向 hibernate JoinTable 添加附加属性

转载 作者:行者123 更新时间:2023-12-02 03:47:52 37 4
gpt4 key购买 nike

我有两个实体:消息和用户。用户与消息具有多对多关系(一个用户可以拥有多条消息),并且消息(目前,为了使其不那么复杂)与用户具有多对多关系(一条消息可以发送给多个用户)。

我正在使用@JoinTable连接两个实体,但是,我想在连接表中添加一个“状态”列来判断消息是否是新的、已读等。我正在考虑将该列放入然而,消息实体,我认为这可能是不可能的。

我看到这个问题的很多答案都说使用中介实体,但如果可能的话我想避免这种情况。

有人可以解决我的问题吗?

最佳答案

JPA 2.0(即 Hibernate 3.5 及更高版本)引入了对将三元关系建模为 Map 的支持。例如,您可以执行以下操作(尽管如果您需要双向关系,我不确定如何处理另一方):

public enum MessageStatus { READ, UNREAD }

public class User {
...

@ElementCollection
@CollectionTable(name = "MessagesToUsers", joinColumns = @JoinColumn(name = "userId"))
@Column(name = "messageStatus")
@MapKeyJoinColumn(name = "messageId")
private Map<Message, MessageStatus> messages = new HashMap<Message, MessageStatus>();

...
}

关于hibernate - 向 hibernate JoinTable 添加附加属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4751902/

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