- - PR -
Hibernateによるテーブルロック
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-03-22 12:33
Hibernateを使ってテーブルロックを行いたいのですが、ネイティブSQLクエリを使う以外に方法はあるのでしょうか?session.load()、lock()等のようにHibernateで用意された機能があればそちらを使いたいのですが。
※ネイティブSQLによるテーブルロック Session session = sessionfactory.openSession(); Connection con = session.connection(); con.prepareStatement("LOCK TABLE hoge_table").executeUpdate(); |
|
投稿日時: 2006-03-23 12:45
Query#setLockMode は、如何でしょうか?
|
|
投稿日時: 2006-03-23 14:05
こんにちは
http://www.hibernate.org/hib_docs/v3/reference/en/html/transactions.html#transactions-locking に説明があります。 以下、サンプルコードです。 public User getUserWithUpgradeNowait(String userId) { User user = (User) getHibernateTemplate().load(User.class, userId, LockMode.UPGRADE_NOWAIT); if (user == null) { throw new ObjectRetrievalFailureException(User.class, userId); } return user; } |
|
投稿日時: 2006-03-24 11:03
なっかむさん
さやべえさん 返答ありがとうございました。 >なっかむさん テーブル全行を取得するQueryを生成してそれに対してsetLockMode()でロックをかけるというイメージでしょうか?ただそれですと全行ロックにはなりますが、テーブルロックにはならないですよね。。。 >さやべえさん サンプルコードですと行ロックになっていないでしょうか?userId(主キー)を指定しているようですし。 |
1