Java JPA多个带前缀的嵌入字段?
对于JPA注释,我希望重用相同的嵌入对象,如下所示:Java JPA多个带前缀的嵌入字段?,java,jpa,annotations,Java,Jpa,Annotations,对于JPA注释,我希望重用相同的嵌入对象,如下所示: @实体 公共类用户{ @嵌入 公共广播和家庭广播; @嵌入 公共广播; } @可嵌入 公共课堂演讲{ 公共字符串代码; 公共字符串城市; ... } 我可以用@AttributeOverrides、@AttributeOverride和@column指定SQL列名,但它是verbos。是否可以只为homeAddress和workAddress的每一列指定一个前缀 谢谢 Xavier如果您想使用多个相同的嵌入式类。您必须对所有列执行@Att
@实体
公共类用户{
@嵌入
公共广播和家庭广播;
@嵌入
公共广播;
}
@可嵌入
公共课堂演讲{
公共字符串代码;
公共字符串城市;
...
}
我可以用@AttributeOverrides、@AttributeOverride和@column指定SQL列名,但它是verbos。是否可以只为homeAddress和workAddress的每一列指定一个前缀
谢谢
Xavier如果您想使用多个相同的
嵌入式
类。您必须对所有列执行@AttributeOverrides
。
尝试如下
参考文献
我的建议是,如果您的实体中嵌入了一个或多个值
。尝试使用@CollectionTable
@CollectionTable(name = "EMPLOYEE_ADDRESS", joinColumns = @JoinColumn(name = "ADDRESS_ID"))
private List<Address> addressList;
@CollectionTable(name=“EMPLOYEE\u ADDRESS”,joinColumns=@JoinColumn(name=“ADDRESS\u ID”))
私有列表添加这个对我来说很有用(不过我使用hibernate作为JPA提供者)
谢谢,我知道这个解决方案,但它很冗长。是否有任何解决方案可以不那么冗长,比如使用“prefix”或“suffix”(在您的示例中是“_1”或“_2”)?对于任何尝试上述操作并出现编译错误的Groovy用户,解决方案是在@AttributeOverrides注释中用[]替换{}。可能重复的
@CollectionTable(name = "EMPLOYEE_ADDRESS", joinColumns = @JoinColumn(name = "ADDRESS_ID"))
private List<Address> addressList;
<property name="hibernate.implicit_naming_strategy" value="org.hibernate.boot.model.naming.ImplicitNamingStrategyComponentPathImpl" />