Hibernate にマップされたクラスを持つ Java EE アプリケーションがあります (*.hbm.xml マッピングを使用します)。ここで、JPA アノテーションを使用してマッピングを再作成する必要があります。すべて問題ありませんが、Map プロパティで正しいマッピングを作成できません。
@Entity
@Table(name = DataBaseConstants.EMPLOYEE_TABLE)
public class Employee implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@SequenceGenerator(name = DataBaseConstants.EMPLOYEE_ID, sequenceName = DataBaseConstants.EMPLOYEE_SEQ)
@GeneratedValue(generator = DataBaseConstants.EMPLOYEE_ID)
@Column(name = DataBaseConstants.EMPLOYEE_ID)
private long id = 0;
@Column(name = DataBaseConstants.EMPLOYEE_NAME)
private String name = null;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = DataBaseConstants.ADDRESS_ID_FK)
private Address address = null;
private Map<Office, Position> officePositions = null;
これは、データベース内のデータ モデルの一部です。 DB MODEL IMAGE (申し訳ありませんが、画像を投稿できません) officeEmployee MAP のマッピングを手伝ってください
Hibernate では、この方法を使用しましたが、すべて問題ありませんでした。
<map name="officePositions" table="EMPLOYEE_POSITION_OFFICE" lazy="false"
fetch="join" batch-size="100">
<key>
<column name="EMPLOYEE_ID"></column>
</key>
<map-key-many-to-many class="com.example.jpajdbctask.entities.Office">
<column name="OFFICE_ID">
</column>
</map-key-many-to-many>
<many-to-many column="POSITION_ID"
class="com.example.jpajdbctask.entities.Position" />
</map>