gpt4 book ai didi

java - @ElementCollection 或@OnetoMany 与实体或原语?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:57:03 24 4
gpt4 key购买 nike

我有一个包含多个页面的站点,每个页面都有一个包含一些数据的表格。表格有很多列,用户可以选择显示或隐藏哪些列。我正在尝试保留这些选择。

我的问题是选择持久化这些对象的最佳方式。

我看到了很多可能的方法,但我没有成功实现过。但在我 promise 其中之一之前,我想知道我是否做错了,或者在实现方式上偏离了目标。

我有一个已经持久化的用户类。

选项#1在我的用户实体中,添加一个 Map> 的字段,其中键是页面名称,列表是用户在该页面上选择的列。使用@ElementCollection。

选项#2用户实体有一个@onetomany 列表。这需要一个 UserColumns 实体,以 pagename 作为主键,并且每个列都与另一个实体存在 @oneToMany 关系。

选项 1:

@Entity
public class User{

private Map<String, List<String>> columns;

@ElementCollection
public void setColumns(Map<String, List<String>> colunms){

}


}

选项 2:

@Entity
public class User{

private List<UserColumns> columns;

@ElementCollection or @OneToMany
public void setColumns(List<UserColumns> colunms){

}


}

我意识到如果不查看实际代码就很难回答这个问题,而且我可能没有充分或准确地描述情况,但无论如何欢迎大家提出意见。谢谢。

最佳答案

在做这样的事情时,我个人总是更喜欢使用与其他实体的一对多关系。我的理由是它是一个更加灵活的设计。很容易看到这样一种情况,您不仅需要知道列名,还需要其他信息。通过使用真实的实体而不是字符串,您只需向类中添加一个新属性。如果你只使用一个字符串,那么你手上会有更广泛的重构。一开始需要更长的时间,但最终几乎总能得到返回。

关于java - @ElementCollection 或@OnetoMany 与实体或原语?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11111769/

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