2


と の 2 つの日付を含む休止状態のエンティティがありstartますfinish

@Entity
public class MyEntity{ 

    private Date start
    private Date finish;
    ...
    @Temporal(TemporalType.DATE)
    @Column(name = "start", nullable = false)
    public Date getStart() {
        return start
    }

    @Temporal(TemporalType.DATE)
    @Column(name = "finish", nullable = false)
    public Date getFinish() {
        return finish;
    }
}

startmust be beforeという制約を導入したいのですが、テーブルに無効なデータを書き込まないようにするために、休止状態のエンティティでこの種の検証/チェックを行うことはできますかfinish? はいの場合、どのように? 私の推測ではそうではありません。おそらく、トリガーを作成する必要があります..そうですか? より良いアイデアはありますか?


4

2 に答える 2

1

@PrePersistの提案のためにMaksymに+1して、アイデアをさらに進めてください。

@PrePersist を @EntityListeners とともに使用して、エンティティの検証を処理することもできます。

public class MyEntityValidationEventListener {
   @PrePersist
   public void validate(Object entity) {....}
}

@Entity
@EntityListeners(MyEntityValidationEventListener.class)
public class MyEntity {...}
于 2013-04-11T17:57:54.990 に答える