新しいオブジェクトを追加して.save()に移動し、selectを実行すると、最後に作成されたオブジェクトがDBではなくクラスから取得されます。これは、日付プロパティがSQL形式に変換されておらず、マックアップされていないことを意味します。私のフロントエンドコード。
例えば
Tue Feb 06, 2012
それ以外の2012-02-06 00:00:00
すべてのオブジェクトがデータベースからプルされるようにする方法はありますか?
ありがとう
Hibernateにはいくつかのレベルのキャッシュがあります。あなたが経験しているのは、セッション/第1レベルのキャッシュです。それを無効にする方法はありません。ただし、このようなことを行うことに固執している場合は、StatelessSessionhttp ://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/batch.htmlセクション15.3の使用を検討できます。
正しくフォーマットされた日付文字列をユーザーに返すためにデータベースに依存している場合は、ユーザーインターフェイス、ビジネスロジック、および永続性レイヤーの分離を再考することをお勧めします。保存/取得しているデータを理解できる限り、データベースまたはHibernateが文字列をどのように形式化するかを気にする必要はありません。MVC、MVVM、またはその他の分離パターンを調べます。
デフォルトでは、get()またはloadは最初にキャッシュから読み取り、データベースに見つからない場合はデータベースに移動します。その上で、それもキャッシュに追加されます。適切なLockModeを備えたsession.get()が必要になります。デフォルトのLockMode.NONEではありません。
さらに、保存操作がデータベースに同期されていることを保証するには、save()とget()の間にflush()が必要だと思います。