私のエンティティには、別のテーブルと1対1の接続を持つフィールドがあります。そのフィールドのデフォルト値を設定するにはどうしたらいいですか?私はこの@Entityオブジェクトフィールドにデフォルト値を設定する方法
@Column(columnDefinition = "int default 5")
@OneToOne(cascade = CascadeType.ALL)
private Admin admin;
のようなものにしようとしていた。しかし、私はこのエラー
@Column(s) not allowed on a @OneToOne
SQLでテーブルを変更せずにこれをachiveする方法はありますを取得しますか?
EDIT:
は周りのいくつかのものを変更しました。今私はこのようなコードを持っています。
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "admin_id", referencedColumnName = "id", nullable = false, columnDefinition = "bigint(20) DEFAULT 5")
private Admin admin;
私も@DynamicInsert
と@DynamicUpdate
を追加しましたが、それはまだ動作しません。私はまた、これらのAdminオブジェクトが既にDBに存在し、それらを再度作成したくないことに注意したい。
'' @JoinColumn(name = "xxx") ''がありますか? –
管理テーブルPKはデフォルトで5ですか? – HRgiger
これは、すべての環境でpkでないかもしれないので、データベースからAdminオブジェクトをロードすることでコンストラクタでこれを設定する必要があります。 –