2017-07-08 8 views
0

私はSpringブート+ Hibernate + Kotlinを使用しています。私がやろうとしています何メソッドの検証Hibernate

は次のとおりです。

私はquestionTimeとanswerTime(以下のコードを参照してください)との質問オブジェクトを持っています。私は、answerTimeが常にquestionTimeよりも長いか等しいという制約にしたい。私はこれをデータベースレベルで制約しておきたい。これどうやってするの?私が欲しいのは、データベースに依存しないことだけです。

@Entity 
@Table(name = "question") 
class Question(
     @Id @GeneratedValue(strategy = GenerationType.AUTO) 
     @Column(updatable = false, nullable = false) 
     var id: Long, 
     @Column(name = "question_time") 
     @ColumnDefault(value = "-1") 
     var questionTime: Int = -1, 
     @Column(name = "answer_time") 
     @ColumnDefault(value = "-1") 
     var answerTime: Int = -1 


) 

答えて

0

エンティティのサポートDB制約が必要な場合は、@Check注釈を使用できます。あなたは、サーバー側での使用の検証フレームワークから同じ制約を持っている必要がある場合は

@Check("name_db_constraint") 
    @Column(name = "answer_time") 
    @ColumnDefault(value = "-1") 
    var answerTime: Int = -1 

、あなたは拡張子

+0

うーん、私はそれがデータベースが独立している望んでいたことを言及するのを忘れてしまったとの制約を作成することができます。私はそれを追加します。それ以外の場合は有効な回答になります。ありがとうございました。 – OmerSakar

+0

hibernate doen'tはddl-auto-modeでカスタムdb制約を作成することをサポートしていません – xyz

関連する問題