この例のシナリオでは出席DTOとワーカーDTOがあります。このコンテキストのワーカーは部門別に区切られており、ワーカーは1つの部門内にしか存在できません。 Worker {id='123-123-123', department='a'}
は、両方とも同じIDを共有しているにもかかわらず、Worker {id='123-123-123', department='b'}
とは異なることに注意することが重要です。Hibernate:マッピングの繰り返し列
私はこのキークラスは以下、Worker
のid
とdepartment
の両方を必要とするのDTOの間で共有されid
とdepartment
public class IdAndDepartmentPK implements Serializable {
private String id;
private String department;
public IdAndDepartmentPK() {}
...
}
によって機能を試してみて、分離するために以下のクラスを設定しているが、二つのDTOがあります問題を引き起こしています。
WorkerDto
はAttendencetDto
の知識を持っている必要はありませんが、AttendencetDto
は、WorkerDto
へのアクセスとそれに含まれる他のデータを持っている必要がありません。
Hibernateは、workerId
のようなフィールドは、insert = "false" update = "false"とマッピングする必要があると言っていますが、これを行うにはこれらの値をデータベースに永続化できません。
私は基本的にこれらのフィールドを利用可能にしたいと同時に、WorkerDto
も利用可能にしたいと考えています、これは可能ですか?
なぜ@Column private String workerId;が必要なのですか? workerDtoによってエンティティをリンクすることができます。 – ByeBye
しかし、もし私がテーブル 'attendences'を持っているとしたら、' worker_id'カラムでは、そのカラムをdtoに指定せずにそこにデータを挿入するでしょうか? – Dominic
外部キーに接続がある場合は、単に「workerDto」を設定することができます。トランザクションが終了すると、エンティティがリンクされます。 – ByeBye