2016-12-29 7 views
0

objのidを持つオブジェクトを削除するだけですか、それとも最初にすべてのプロパティを参照していますか?例えばHibernateはオブジェクトをどのように削除(obj)しますか?

は、私はそれが最初にこれらのプロパティのすべてが必ずチェックアウトしますん

id = 25, amount = 311, client_id = 13 

TransactionRequest transactionRequest TR1を削除したいと言うか、それだけで25のIDを持っているものは何でもTransactionRequest削除しますか?

答えて

0

あなただけが知っているオブジェクトを削除するための条件。

idフィールドが十分である場合は、条件を拡張する場合(他のフィールドよりもamountやclient_idなど)に進めることができます。

最初::オブジェクトを削除するには

、次の2つの方法を(私は例として、あなたのTransactionRequestオブジェクトを使用)に従うことができる

は、クエリによってオブジェクトを取得し、それを削除します。

Query q = session.createQuery("select from TransactionRequest t where t.id = :yourParam"); 
q.setString("yourParam, "25"); 
TransactionRequest toDelete = (TransactionRequest)q.uniqueResult(); 
session.delete(toDelete); 

秒:

書き込み削除クエリ二つの方法の間

Query q = session.createQuery("delete from TransactionRequest where id = :yourParam"); 
q.setString("yourParam, "25"); 
q.executeUpdate(); 

違い:

あなたが最初の方法を使用している場合、あなたは、オブジェクトとあなたの場合は、カスケード句

にマッピングされたデータのセットを削除することを保証しますあなたのオブジェクトにセット/リスト/バッグがマッピングされている場合、オブジェクトを削除することはできません

+1

もう1つの注意:すべての一括操作(削除...)は、インターセプタとイベントリスナーと第1レベルキャッシュ。 – idmitriev

+0

@ igor-dmitriev:はい、そうです –

関連する問題