私は、このクラスのAPIバージョン(私がAPI要求のために使用するフィールドのサブセット)を表す1つの一時フィールドを持つ1つの永続クラスを持っています。このフィールドは@Transient
です。他のフィールドを使用して簡単に作成できます。クラスフィールドを埋めるためにHibernateコールセッターメソッドを強制する方法は?
私は問題は... Hibernateはフィールドにアクセスするためのクラスとリフレクションをインスタンス化するために、デフォルトの空のコンストラクタを使用していることですので、私はconstrorctorにもsetterメソッドの呼び出し
に私の過渡クラスをインスタンス化することはできません代わりにセッターを使用するために休止状態を強制的にフィールドのゲッター方法をanotateしようとしたが、それは私がフィールド上@Access(AccessType.PROPERTY)
を使用しようとした
動作しませんでしたが、それはどのように
を動作しませんでした強制的に休止状態のコールセッターが遭遇したクラスフィールドを埋めるためにうなずきますか?
@Entity
public class User {
@Transient
private ApiUser tempUser = new ApiUser();
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Access(AccessType.PROPERTY)
@Column(nullable = false)
private String name;
@Access(AccessType.PROPERTY)
@Column(nullable = false, unique = true)
private String username;
@Access(AccessType.PROPERTY)
@Column(nullable = false)
private String userId;
//lots of others fields//
public void setUsername(String username) {
this.username = username;
this.tempUser.setUsername(username);
}
public void setUserId(String userId) {
this.userId = userId;
this.tempUser.setId(Long.parseLong(userId));
}