JPAの初心者で、JPAの多対1の関係を取得するための助けが必要です。JPA多対1の関係
以下のエンティティがあります。
すべてのユーザー情報を格納するユーザー。ユーザーは、など、最終更新日、作成日のようなauidtの偶然にを保持するためのものであるAudiatable抽象クラスを拡張する
私はそのために、私は多くを追加するamtrying lastUpdatedByから取り出され得るべきlastUpdatedByUserとして別のフィールドを追加しようとしています1つの関係。 しかし、関係は何とか働いていない、私はここで何か間違っている?
AuditableEntity.java
public abstract class AuditableEntity<T extends Entity<T, ID>, ID> implements Auditable {
private static final long serialVersionUID = 1L;
@Column(name = "cruserid")
private Long createdBy;
@Column(name = "crdate")
@Type(type = JpaConstants.TYPE_LOCAL_DATE_TIME)
private LocalDateTime createdOn;
@Column(name = "chuserid")
private Long lastUpdatedBy;
@Column(name = "chdate")
@Type(type = JpaConstants.TYPE_LOCAL_DATE_TIME)
private LocalDateTime lastUpdatedOn;
@Transient
@ManyToOne(fetch = FetchType.LAZY, targetEntity = User.class)
@JoinColumn(name = "usrId", referencedColumnName = "chuserid")
private User lastUpdatedByUser;
User.java
public class User extends AuditableEntity<User, Long> {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "usrId")
private Long id;
@Column(name = "usrName")
private String name;
@Column(name = "loginame")
private String loginName;
}
こんにちは、問題は私たちはlastUpdateBy ....を削除することはできません私たちは既存のコードの場所の多くで参照してください..私たちは過渡的なフィールドlastUpdateByUserを追加するだけで私たちの目的を保存する今は...その種類o f weired designしかしrefractoringが時間制約のために保留になっている –
読み取り専用モードでのみ使用されている場合は、上記のようにlastUpdatedByUserのマップを削除し、 'lastUpdateBy'の列を挿入不可、更新可能。 –
Thnx再び、最後のコメントごとに動作しますが、残念ながらlastUpdateByは読み取り専用モードでのみ使用されていません...各エンティティに対して、最後の更新を行ったユーザーIDを更新するために呼び出されます。 –