JPA @ElementCollection:如何保存广告订单

时间:2013-08-26 13:35:51

标签: java jpa

我正在尝试存储用户定义的键值参数的LinkedHashMap。为此,我创建了一个基于动态html jquery的表,允许用户创建一个新的“键值行”,删除现有的行或向上或向下移动行。

现在,我能够将DOM-id输入字段映射到我的持久性实体,一个用@ElementCollection注释的映射。不幸的是 - 在刷新页面之后 - 似乎有一个任意顺序是不可接受的,只要我允许用户将键,值对移动到特定索引。

这是我的JPA-Entity的地图成员变量:

@ElementCollection
@CollectionTable(
        name="VCTRL_SELECTIONBOXES_VALUEMAP",
        joinColumns=@JoinColumn(name="SELECTIONBOXES_ID")
)
@Column(name="MAP_VALUE")
@MapKeyColumn(name="MAP_KEY")
private Map<String, String> valueMap = new LinkedHashMap<String, String>();

你有什么想法如何应对吗?

1 个答案:

答案 0 :(得分:0)

createTimestamp无法帮助处理订单 - 您无法上下移动行并依赖它进行排序。似乎你唯一的选择就是用整数列创建单独的对象&#39; order&#39;并在保存前填写,然后在加载时按顺序排序。但它可能无法与CollectionTable一起使用,请使用标准OneToMany