2009-07-09から1日間の記事一覧

生成された主キーを取得する

JPA

JPAを使ってエンティティをINSERTし、更にINSERTしたエンティティの主キーを取得する必要があったとします。 例えば次のようなコードを考えてみます。 @Entity public class Foo { // AUTO INCREMENTなカラムIDを主キーとしている @Id @GeneratedValue(strat…

Struts2で継続(Continuation)

XWorkのActionSupportクラスのJavadocを見ていたら発見してしまったのです。 継続をサポートしているということを。 どのように実装しているか大変興味を持ったので、早速ソースを見てみると、 /** * * Stops the action invocation immediately (by throwi…

EclipseLinkで悲観ロック

次のようにします。 import org.eclipse.persistence.config.*; public class JPADialect { ... public void setPessimisticLock(final Query query, final boolean nowait) { if (nowait) { query.setHint(QueryHints.PESSIMISTIC_LOCK, PessimisticLock.Lo…

EclipseLink固有APIを使って、DELETE文を優先させる

ひとつ前のエントリでも説明したのですが、JPAのデフォルトではDMLの実行はコミット時に行われます。 それはJPA仕様ということで理解できるのですが、 タチの悪いことに、DML文の実行順序はEntityManagerの更新系メソッドの呼び出し順序と一致しないことがあ…