0

単純な選択でサービス メソッドを呼び出すと、MyDomain.class の Date フィールドが DB で更新される (時間をクリアする) ことに気付きました。ただし、メソッドを @Transactional(readOnly = true) で囲んでも、日付の値は更新されません。

値がDBに保存されるのはなぜですか?

サービス方法はこちら

@Transactional(readOnly = true)
Date getDate() 
{
    Date date = null
    date = MyDomain.executeQuery("select min(s.startDate) from MyDomain s where ....)[0]
    print "Result: " + date

}
4

1 に答える 1

2

オブジェクトは、休止状態セッション (選択) に持ち込まれた後、セッションが閉じられる前 (通常はメソッドの最後) に変更された場合にのみ、データベースで更新されます。オブジェクトを見て、意図しない方法でオブジェクトがどのように変更されているかを確認してください。

于 2012-10-13T17:42:00.177 に答える