我正在构建一个 Web 应用程序,为所有客户提供通用的实体基础
现在有些客户需要额外的字段,但我不想添加全部。我想到了类似的事情:
@Embeddable
public class AdditionalDetails {
private String label;
private String text;
public AdditionalDetails() {}
// autogenerated getters and setters, hashCode(), equals()
}
@Entity
public class BusinessObject {
@Id
@Column(name = "string_id")
private long id;
@ElementCollection(fetch=FetchType.EAGER)
@MapKey(name = "language")
@CollectionTable(schema = "label", name = "multilingual_string_map",
joinColumns = @JoinColumn(name = "string_id"))
private Map<String, AdditionalDetails> map = new HashMap<String, AdditionalDetails>();
public BusinessObject() {}
// autogenerated getters and setters, hashCode(), equals()
}
不,问题是我该由谁来配置 BusinessObject 添加哪些属性?
最佳答案
您可以从基类中删除@Entity
注释。
然后从基类创建子类并向子类添加 @Entity
注释。
现在您可以避免将所有属性放在基类中,而是可以将它们添加到适当的子类中。
关于java - 向 JPA 实体添加动态属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18942308/