我有一个包含多个页面的站点,每个页面都有一个包含一些数据的表。表格有很多列,用户可以选择显示或隐藏哪些列。我正在尝试坚持这些选择。
我的问题是选择持久化这些对象的最佳方式。
我看到了许多可能的方法,但我都没有成功实施。但在我承诺其中之一之前,我想知道我是否做错了,或者我对如何实施这件事有点离题。
我有一个已经持久化的用户类。
选项#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){
}
}
我意识到如果不查看实际代码就很难回答这个问题,而且我可能没有充分或准确地描述这种情况,但无论如何欢迎所有输入。谢谢你。