// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
Hibernateは業務用アプリとかで出てくる、楽観的ロック機構を標準で備えています。それを試してみました。複数のトランザクションである同じrowを検索してきて、それをそれぞれのトランザクションでupdateしてみようと思います。


**対象テーブルの情報 [#g644d7c9]
#ref(MESSAGES.png)


対象のテーブルMESSAGESは以下の通り:
 mysql> describe test.MESSAGES;
 +-----------------+------------------+------+-----+---------+----------------+
 | Field           | Type             | Null | Key | Default | Extra          |
 +-----------------+------------------+------+-----+---------+----------------+
 | MESSAGE_ID      | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
 | NEXT_MESSAGE_ID | int(10) unsigned | YES  | MUL | NULL    |                |
 | MESSAGE_TEXT    | varchar(255)     | NO   |     | NULL    |                |
 | VERSION         | int(10) unsigned | NO   |     | 0       |                |
 +-----------------+------------------+------+-----+---------+----------------+

このテーブルを作成するために実行するDDLは以下の通り:
 CREATE TABLE `MESSAGES` (
   `MESSAGE_ID` int(10) unsigned NOT NULL auto_increment,
   `NEXT_MESSAGE_ID` int(10) unsigned default NULL,
   `MESSAGE_TEXT` varchar(255) character set ujis NOT NULL default '',
   `VERSION` int(10) unsigned NOT NULL default '0',
   PRIMARY KEY  (`MESSAGE_ID`),
   KEY `MESSAGES_FKIndex1` (`NEXT_MESSAGE_ID`),
   CONSTRAINT `MESSAGES_ibfk_1` FOREIGN KEY (`NEXT_MESSAGE_ID`) REFERENCES `MESSAGES` (`MESSAGE_ID`) ON DELETE NO ACTION
 ON UPDATE NO ACTION
 ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;



----
この記事は
#vote(おもしろかった,そうでもない)

#comment
#topicpath


SIZE(10){現在のアクセス:&counter;}

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS