0

私はしばらくの間Hibernateを使おうとしています。アノテーションマッピング機能(@ Entity、@ Columnなど)があるHibernateが好きです

しかし、私はそれがキャッシュのアイデアを好まない(休止状態のキャッシュを無効にする方法は、それも無効にできないと言っていた)。

また、データベース内の一部のデータを挿入/削除/更新するときにSQLをデータベースに直接実行しない「コミットvsフラッシュ」のアイデアはまったく好きではありません。

それで、私のタイトルとして、アノテーションはあるがキャッシュがなく、SQLを直接実行するHibernateのようなフレームワークはありますか?そのようなフレームワークがSpringで使用できるとよいでしょう。

または、実際には、Hibernateはキャッシュを無効にするだけですか、それとも挿入/削除/更新ごとに直接SQLを実行できる構成にすることができますか?

4

3 に答える 3

2

これらの機能はデフォルトでオンになっています。これは、通常は必要なためです (最初は気付かなくても)。

ただし、キャッシュを無効にしてすべてをすぐにフラッシュしたい場合は、次のようにします。

  • use sessionFactory.openStatelessSession()- このセッションは第 1 レベルのキャッシュに何も保存しません (第 2 レベルのキャッシュはデフォルトでオフになっています)。このセッションではコレクション マッピングを操作できないことに注意してください。
  • 非常にクエリの前に自動的にフラッシュするように設定するために使用session.setFlushMode(..)します(むしろ推奨されません)。

フラッシュ モードはステートフル セッションでのみ使用できることに注意してください。ステートレス セッションはすぐにフラッシュされます。

于 2012-03-06T20:42:43.443 に答える
1

もう少し直接的なMyBatisを探しているかもしれません。注釈ベースの例については、他にもありますが、こちらを参照してください。純粋な JDBC を使用することも、Spring を使用している場合は Spring を使用することもできます。

「キャッシュが嫌い」ということがわかりません。

于 2012-03-06T20:45:26.597 に答える
1

Hibernate は優れたフレームワークですが、より軽量な実装には Spring JDBC を使用する傾向があります。

http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/jdbc.html

于 2012-03-06T20:44:02.713 に答える