次の構造のテーブルがあります。
NUMBER RECORD_ID - PK
STRING NAME
STRING SOME_OTHER_BS
NUMBER ID - the person id i need to group the records by
休止状態のエンティティで次のようにフィールドをマップしました。
long id; // RECORD_ID
String name; // NAME
String someOtherBS; // SOME_THER_BS
long personId; // ID
問題は、エンティティに同じ personId を持つ一連の要素が必要なことです。私はこれをやろうとしました:
@ManyToOne(fetch= FetchType.LAZY, targetEntity = MyEntity.class)
@JoinColumns( {
@JoinColumn(name="`ID`", referencedColumnName = "`ID`")
} )
private Set<MyEntity> otherEntities;
しかし、これにより次のエラーが発生します。
org.hibernate.MappingException: エンティティのマッピングで繰り返される列: com.sflpro.dto.MyEntity 列: ID (insert="false" update="false" でマップする必要があります) org.hibernate.mapping.PersistentClass.checkColumnDuplication( PersistentClass.java:681) ~[hibernate-core-4.1.5.Final.jar:4.1.5.Final] at org.hibernate.mapping.PersistentClass.checkPropertyColumnDuplication(PersistentClass.java:703) ~[hibernate-core-4.1 .5.Final.jar:4.1.5.Final] at org.hibernate.mapping.PersistentClass.checkColumnDuplication(PersistentClass.java:725) ~[hibernate-core-4.1.5.Final.jar:4.1.5.Final] org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:478) で ~[hibernate-core-4.1.5.Final.jar:4.1.5.Final] org.hibernate.mapping.RootClass.validate(RootClass. java:270) ~[hibernate-core-4.1.5.Final.jar:4.1.5.Final] at org.hibernate.cfg.Configuration.validate(Configuration.java:1294) ~[hibernate-core-4.1.5.Final.jar:4.1.5.Final] at org.hibernate.cfg.Configuration.buildSessionFactory( Configuration.java:1736) ~[hibernate-core-4.1.5.Final.jar:4.1.5.Final] at org.hibernate.ejb.EntityManagerFactoryImpl.(EntityManagerFactoryImpl.java:94) ~[hibernate-entitymanager-4.1. 5.Final.jar:4.1.5.Final] at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:905) ~[hibernate-entitymanager-4.1.5.Final.jar:4.1.5.Final] . .. 74 個の共通フレームを省略hibernate.ejb.EntityManagerFactoryImpl.(EntityManagerFactoryImpl.java:94) ~[hibernate-entitymanager-4.1.5.Final.jar:4.1.5.Final] at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:905) ~[hibernate-entitymanager-4.1.5.Final.jar:4.1.5.Final] ... 74 個の共通フレームを省略hibernate.ejb.EntityManagerFactoryImpl.(EntityManagerFactoryImpl.java:94) ~[hibernate-entitymanager-4.1.5.Final.jar:4.1.5.Final] at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:905) ~[hibernate-entitymanager-4.1.5.Final.jar:4.1.5.Final] ... 74 個の共通フレームを省略
では、どうすればこれを達成できますか?
PS
これはレガシーデータベースであり、その設計を変更することは官僚的な面倒なので、私はそれを避けたい.