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があるんだろう