我读过这个article,我正在寻找Spring-JPA解决这个问题的方法。
可以动态更改JPA映射吗?
我发现这个solution,但没有用......我正在使用Spring / JPA / Hibernate ...
非常感谢!
答案 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
中找到了一些动态模型演示代码