我必须映射一个大型企业数据库架构。由于许多遗留应用程序依赖于该模式,我无法将其从复合键更改为代理键(除了使用带有70%数据库对象的替代触发器的视图)这导致了一些问题我不知道该怎么克服。
从我到目前为止所读到的JPA doesn't support relationships to non-primary keys,但是people still do it。也是我的第二个问题might be solved with Hibernate 5,但我希望能提出一些好的建议。这里有什么路线。
测试模型,数据库脚本和项目:
答案 0 :(得分:2)
1) - 将自动增量列映射为主键 - 为compositeid创建类,并使用property-ref
映射多对一 <component name="compIdProperty" unique="true">
<property column="naselje" />
<many-to-one column="korisnik" class="Korisnik"/>
</component>
<many-to-one name="Naselja" property-ref="compIdProperty">
<column name="naselje" />
<column name="korisnik" />
</many-to-one>
2)AFAIK根本不可能使用hibernate
我看到的唯一可行方法是将(Grad,Opcina)映射为属性并自行管理关联
3)因为这是一个传统的架构,所以我会选择添加多对一,并将多对一映射到Opine和Gradovi的Korisnik