我正在使用@CollectionOfElements将一组属性映射到我的实体。这里的目标是能够提供可以在查询中使用的元数据列表来提取特定条目。
我已经找到了映射以及如何运行我想要的查询。问题是hibernate不会持久化null值!
@CollectionOfElements()
@JoinTable(name = "plan_attribute", joinColumns = @JoinColumn(name = "plan_id"))
@MapKey(columns = @Column(name = "attribute_name", nullable = false, length = 255))
@Column(name = "attribute_value", nullable = true, length = 255)
public Map getAttributes() {
return attributes;
}
public void setAttributes(Map attributes) {
this.attributes = attributes;
}
public void addAttribute(String name, String value) {
this.attributes.put(name, value);
}
EG。 object.addAttribute(“someName”,null);将不会坚持
任何人都有任何关于如何在没有实现键/值对实体的情况下实现此目的的唯一想法,仅用于持久保存这些值?
此致
答案 0 :(得分:2)
引用OP评论:
Hibernate 3.3.2.GA,所以是 - 看起来 喜欢那个bug适用。我以前可以 通过明确解决问题 将空值设置为'*'字符 这实际上运作得很好 对于我来说,比'null'更适合 用例。
这个答案应该从未回答的问题列表中删除,直到进行近距离投票。