TopLink Essentials JPA Extensions Reference

persistence.xmlのproperties要素に書けるオプションとか,いろいろ載ってて便利。これで,キレイに印刷できるように工夫してあれば,なお良いのに。


とりあえず,TopLink+Derby(非データソース利用)んときの,persistence.xmlの記述例をメモっておく(IDEAのpersistence.xmlの入力支援は,こうゆう実装依存ネタはてんで弱いから*1)。

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
  <persistence-unit name="TestPersistenceUnit" transaction-type="RESOURCE_LOCAL">
    <provider>oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider</provider>
      :
    <properties>
      <property name="toplink.jdbc.driver" value="org.apache.derby.jdbc.ClientDriver"/>
      <property name="toplink.jdbc.url" value="jdbc:derby://localhost:1527/testdb;create=true"/>
      <property name="toplink.ddl-generation" value="create-tables"/>
      <property name="toplink.jdbc.user" value="app"/>
      <property name="toplink.jdbc.password" value="app"/>
      <property name="toplink.logging.level" value="ALL"/>
    </properties>
  </persistence-unit>
</persistence>

注目すべき点はtoplink.ddl-generationプロパティ。
って,別にTopLinkに限った機能じゃないし,今となっては珍しくもないんだけど,ちょいちょい組んでみるときなんかは便利よね。ただ,無茶な話だとわかってはいるが,エンティティの追加(CREATE TABLE)はインクリメンタルにできるけど,エンティティの属性の変更(ALTER TABLE)は直接DBをいじってあげないとダメなのね。
Railsマイグレーション的な事を一瞬期待してしまった。:-P

*1:そのためにLive Templateがあるんだろう