ホームページ > データベース > mysql チュートリアル > MySQL の「ON DUPLICATE KEY UPDATE」を Hibernate で実装するにはどうすればよいですか?

MySQL の「ON DUPLICATE KEY UPDATE」を Hibernate で実装するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-09 20:43:02
オリジナル
784 人が閲覧しました

How can I implement MySQL's

Hibernate を使用した MySQL の「ON DUPLICATE KEY UPDATE」の実装

MySQL の便利な機能の 1 つは、「ON DUPLICATE KEY UPDATE」構文です。 。この構文により、一意のキーに基づいて既存のレコードを効率的に更新でき、レコードが存在しない場合は挿入に戻ります。ただし、この機能を Hibernate と統合するのは難しい場合があります。

Hibernate の制限事項

Hibernate の HQL パーサーでは、「ON DUPLICATE KEY UPDATE」などのデータベース固有のキーワードが禁止されています。さらに、Hibernate は SQL-запросы только выборочными операциями を実行します。 session.createSQLQuery("sql").executeUpdate() を呼び出すと例外がトリガーされます。さらに、saveOrUpdate は同時更新では期待どおりに動作しない可能性があります。

解決策: @SQLInsert アノテーション

これらの制限に対処するために、Hibernate は @SQLInsert アノテーションを使用する代替アプローチを提供します。 。このアノテーションを使用すると、開発者は挿入操作用のカスタム SQL を定義できます。

たとえば、Hibernate エンティティ内に "ON DUPLICATE KEY UPDATE" 構文を実装するには、次のアノテーションを使用できます:

@Entity
@Table(name="story_count")
@SQLInsert(sql="INSERT INTO story_count(id, view_count) VALUES (?, ?)
 ON DUPLICATE KEY UPDATE view_count = view_count + 1" )
public class StoryCount
ログイン後にコピー

このアノテーションは、挿入操作に提供された SQL ステートメントを使用するように Hibernate に指示します。この方法を使用すると、Hibernate 内の「ON DUPLICATE KEY UPDATE」機能を利用できます。

以上がMySQL の「ON DUPLICATE KEY UPDATE」を Hibernate で実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート