INSERT の前に SELECT クエリを実行して Hibernate 3.3.0 に値を生成させたい
これはサポートされていないと思います。
代替案 #1: SELECT を「作成」ロジックの一部として、コード内で直接実行することもできます。
代替案 #2: Hibernate Interceptor を使用し、への参照を提供して、Interceptor からのSessionFactory
実行中に SELECT を実行しonSave
ます。
では、注釈の適切な組み合わせは何でしょうか?
デフォルトの設定は実際には十分にサポートされておらず ( HHH-4341を参照)、最も簡単な解決策は IMO が列レベルで DEFAULT 値を定義することです。それが私の代替案 #3です。以下に例を示します。
@Generated(GenerationTime.INSERT)
@Column(insertable=false, columnDefinition="INT DEFAULT 20")
private int someNumber;
これがあなたにとってのオプションかどうかはわかりませんRANDOM()
し、DEFAULT での使用がデータベースでサポートされるかどうかもわかりません (ちなみにどのようにしRANDOM() * 2
て になるのint
でしょうか?)。