JPA 2自定义实体字段

时间:2014-04-01 12:52:39

标签: java spring hibernate jpa

我读过这个article,我正在寻找Spring-JPA解决这个问题的方法。

可以动态更改JPA映射吗?

我发现这个solution,但没有用......我正在使用Spring / JPA / Hibernate ...

非常感谢!

1 个答案:

答案 0 :(得分:1)

Hibernate中有"dynamic models",类似于" Flex Extensions"你引用了。你可以尝试一下。

前段时间我必须在普通JPA 2中为PoC项目(快速和脏)做类似的事情,我选择保持动态的东西作为Map,自己序列化对象,看起来有点难看,但它做的工作:

@Access(AccessType.PROPERTY)
@ElementCollection
@MapKeyColumn(name="name")
@Column(name="value")
@CollectionTable(name="dynamic_data", joinColumns=@JoinColumn(name="entity_id"))
private Map<String, String> data_xml;

@Transient
private Map<String, Object> data = new HashMap<>();

protected Map<String, String> getData_xml() { //serialize each value to string 
}

protected void setData_xml(Map<String, String> data_xml) { //convert each value from string
}

当然,它还没有准备好被复制粘贴到生产代码中,只是为了展示这个想法。

P.S。我在hibernate sources

中找到了一些动态模型演示代码