2012-02-21 8 views
4

レコードを削除するのではなく、レコードを削除済みとしてマークします。 JPA2/Hibernateを使用しています。私は、次のような何かをしたい:私は過去にこれを行っているが、私は右の構文と注釈を見つけることができないようJPA/Hibernateのデフォルトのremove()/ DELETEを無効にします

@Entity 
@Table(name="TABLE") 
@ActionOverride(action="delete", with="activeFlag = false") 
public class Table { 
    @Column(name="ACTIVE_FLAG") 
    boolean activeFlag; 

    // ... 

} 

+0

説明するように、[ここ]、DeleteEventListenerでそれを行うことができます[1] [1]:http://stackoverflow.com/questions/5404964/hibernate-overwrite-sql-継承を伴う削除/ 10549817#10549817 – slipset

答えて

8

hibernate documentationをご覧ください。探している注釈は@SQLDeleteです。

@Entity 
@Table(name="TABLE") 
@SQLDelete(sql = "UPDATE TABLE SET ACTIVE_FLAG = false WHERE id = ?") 
public class Table { 
    @Column(name="ACTIVE_FLAG") 
    boolean activeFlag; 
    // ... 
} 
1

注釈はorg.hibernate.annotations.SQLDeleteのようだ:

SqlDelete注釈は、あなたがsql属性にカスタム更新SQLを設定する方法

をDELETE Hibernateのデフォルトを上書きします。

関連する問題