S2TopLink

S2TopLink-JPA 1.0.1 リリース

1.0.0からの変更点は次の通りです。 Bug [TOPLINK-1] - EntityReaderで、InheritanceType.JOINEDの継承戦略を使った子クラスの、子クラス側テーブルIDが取得できない [TOPLINK-2] - EntityReaderで、N対1関連のEntityの外部キーカラムの値が取得出来ない ダ…

S2TopLink-JPA 1.0.0リリース

1.0.0-rc4 からの変更点は次の通りです。 Seasar2.4.18に対応しました.ダウンロードはこちらから. http://s2toplink.seasar.org/ja/Maven2からのご利用はこちらを参照ください. http://www.seasar.org/wiki/index.php?Maven2RepoRemoteようやくV1を出すこ…

S2TopLink-JPA 1.0.0 rc4リリース

S2TopLink-JPA 1.0.0-rc4 をリリースしました。■移行の注意点・S2TopLink-JPA 1.0.0-rc4はSeasar2.4.18-rc1との組み合わせで動作します。 これ以前のバージョンでは動作しないのでご注意ください。・S2TopLink-JPA 1.0.0-rc4はKuina-Dao 1.0.0-rc1 との 組み…

S2TopLink-JPA 1.0.0-rc3 リリース

S2TopLink-JPA 1.0.0-rc3 をリリースしました。rc-2からの主な変更点は次の通りです。 依存する TopLink Essentials のバージョンを 2.0-47 に更新しました。 Seasar2.4.13に対応しました。 S2Tiger 2.4.13の、コンテナ管理EntityManagerFactoryサポート機能…

java.netのMavenリポジトリ

のURLが変わっていて、中を見たらTopLink Essentialsの最新版も入ってました。 https://maven-repository.dev.java.net/ 早速pom.xmlに定義して mvn -DdownloadSources=true -Dwtpversion=1.5 eclipse:eclipse を実行してみました。無事にTopLink Essentials…

S2TopLink-JPA 1.0.0-rc1 リリース

S2TopLink-JPA 1.0.0-rc1をリリースしました。 今回がファーストリリースとなります。V1実装機能の概要は ・S2.4のJPAサポート機能に対応 ・S2.4のSMART Deployルールに対応したEntityクラス、XMLファイルの自動登録機能 ・S2Assert(S2Unit4)対応 ・Kuina-…

Derbyの使い方

TopLink Essentialsがサポートしている組み込みDBの中で、TopLinkのサポートが最もしっかりしているのは、現時点ではDerbyです。HSQLDBをサポートするクラスも存在するのですが、JPQLのサポートなどが充実していません。そこで、S2TopLinkもDerbyを添付して…

JPQLではFETCH JOINする関連Entityに別名をつけられない?

SELECT mtoo FROM ManyToOneOwner mtoo INNER JOIN FETCH mtoo.oneToManyInverse otmi WHERE otmi.id <= 10こんなJPQLをHibernateで実行すると Hibernate: select manytooneo0_.id as id2_0_, onetomanyi1_.id as id3_1_, manytooneo0_.name as name2_0_, ma…

S2TopLink現状まとめ

TopLink Essentialsの問題 PersistenceProvider.createEntityManagerFactoryで、TopLink以外のPersistenceProviderを定義したpersistence-unit名を渡すとエラーが発生 S2TopLink側で対応済 EntityManager.createNamedQueryで、存在しないNamedQuery名を渡し…

HotDeployClassLoaderはJPAのTempClassLoaderとして使えるか?

Seasarメディア準備号 ひがやすお氏インタビューを読みました。 Javaは、クラスを一度クラス・ローダーに読ませると変更できません。デバッガAPIを使えば可能ですが、この路線はいろいろ考えて放棄しました。一カ月考えて、ゴールデン・ウィークに方法を思い…

TopLink Essentials b23以降で、N:1のLAZYロードが効かない件 その2

TopLink Essentials Version2 Build26が出ました。 id:da-yoshi:20061111#1163175222で書いた現象は未だに直っていないようです。DBをOracleに変えてもHSQLDBに変えても、TABLE作成機能を使っても使わなくても、症状は変わりません・・・ しかし、どうやらJP…

TopLink Essentials b23以降で、N:1のLAZYロードが効かない件 その3

どうやら、Entityのアノテーションをフィールドに定義していると起こるらしい。getterメソッドに定義したところ、エラーは発生しませんでした。 oracle.toplink.essentials.internal.weaving.AttributeDetailsにsetter・getter情報を渡すとき、フィールドに…

S2Unit4対応準備

まだ不完全ですが、一応Kuina-Dao対応のクラス群を作ったので、次はS2JUnit4への対応を進めていきたいと思います。これとPersistenceClassAutoDetectorに対応できて初めて、S2Hibernate-JPAと選択可能な状況になれると思いますので。 ・・・ということで調査…

Kuina-Daoに挑戦 その2

昨日の日記で幾つか上げた問題点ですが、どうやら解決できそうです。 まずは、TopLinkが存在しないNamedQueryの名前を渡してもエラーを返さない問題についてですが、Queryの実装クラスを調べたところ、getDatabaseQueryというメソッドの中でNamedQueryの存在…

Kuina-Daoに挑戦

カンファレンスで出ていたサンプルを早速S2TopLink環境で動かしてみようと思い、環境を作ってみました。本当はKuina-Daoプロジェクトをビルドパスに追加して済ませたかったのですが、どうやらTopLinkのEntity自動検索機能が、Kuinaのクラスパスまで見に行っ…

TopLinkに対する感想

Seasar Conを前に、自分なりのTopLinkに対する感想を書くと・・・やはり完成度はHibernateの方が高いと思います。自分は既に実務でHibernate EntityManagerを使っているのですが、現時点でかなり安定していますし、独自機能のListener機能はJPA標準のListene…

Kuina-Dao 対応準備

S2TopLinkDialect TopLinkEntityDescProvider TopLinkEntityDesc TopLinkAttributeDesc の4つのクラスを作成しました。AttributeDesc実装については不完全で、TemporalTypeをどう取得するかがまだ解明できていません。あとは、まだPersistenceClassAutoDete…

TopLink Essentials b23以降で、N:1のLAZYロードが効かない件

更に調べてみたところ、oracle.toplink.libraries.asm.Itemクラスの222行目でぬるぽが起こってることがわかりました。どうやら、Entityのエンハンス時に何かバグが紛れ込んでる模様。この部分についても、b22までは上手く動いてます。 ・・・というわけで、T…

Web対応

以前色々試行錯誤した内容を元に、Web環境でS2TopLinkを動かすS2TopLinkContainerPersistenceUnitProviderを作成しました。 PersistenceUnitManagerImplのstaticContextを有効にして、S2ContainerServletの初期化前にEntityManagerFactoryの作成を行い、そこ…

javaagent対応

どうやら今まで自分は、TopLinkのjavaagentの動作でずっと勘違いをしていたみたいです(汗) premainメソッドのagentArgs引数は、コマンドで toplink-essentials-agent.jar=${agentArgs}みたいに引数を渡さない限りnullが返ってきます。したがって、特にagen…

AutoDetector対応

PersistenceClassAutoDetectorとMappingFileAutoDetectorに対応してみました。 ・・・ただし、deploy前にEntityのClassをロードすると、TopLinkの場合LAZYロードの問題が発生する(javaagentを使ってる場合は大丈夫みたいですが)ので、この対策が出来るまで…

S2TopLink

仕事が忙しくて止まってましたが、現在MappingFileAutoDetector対応を検討中です。PersistenceClassAutoDetectorの方は、TopLink自体が自動Entity登録機能を持っているので優先度低くていいかなと思ってます。 ところで、b23を入れたらjavaagentによるLAZYロ…

StaticWeaver

StaticWeaverクラス(あらかじめN:1LAZYロード可能なようにクラスをエンハンスしてクラスファイルとして保存しておくクラス)を色々触っているのですが、どうも上手くいきません。TopLinkによってエンハンスされたメソッドを、今度はEntityのプロパティとし…

S2TopLink-JPA開発日記 N:1LAZYロード対応

この件について色々悩んでいたのですが、結局JUnitで単体テストを動かすときには、どの方法を使ってもうまく動かないことが判明・・・これはTopLink Essentials本来の方式(javaagent)でも同様です。JUnitがテストケースのクラスをロードするときに、Entity…

S2TopLink-JPA開発日記

S2TopLinkプロジェクトをSeasarファウンデーションにサンドボックス申請して認可していただきました。TopLink自体触り始めてまもなく、まだまだ至らない点が沢山あるかと思いますが、頑張りたいと思います。 ・・・で、早速ネガティヴな話題からですが(汗)…