Doma + Play 1.2 の場合の DomaConfig
@gakuzzzz に教えていただいたのですが Play 1.2.x で Doma を使う時は Config クラスに Play1 のクラスローダを伝えるために #getClassHelper() を拡張する必要があるようです。これをやっていないと apt で生成した *Impl.java やら domain クラスが ClassNotFoundException になったりします。
import javax.sql.DataSource; import org.seasar.doma.jdbc.ClassHelper; import org.seasar.doma.jdbc.DomaAbstractConfig; import org.seasar.doma.jdbc.dialect.Dialect; import play.Play; public class DBConfig extends DomaAbstractConfig { @Override public DataSource getDataSource() { // 省略 return null; } @Override public Dialect getDialect() { // 省略 return null; } /** * Play1 に対応させるための ClassHelper */ private static class PlayClassHelper implements ClassHelper { @Override public <T> Class<T> forName(final String className) throws Exception { return (Class<T>) Play.classloader.loadApplicationClass(className); } } private static final ClassHelper classHelper = new PlayClassHelper(); @Override public ClassHelper getClassHelper() { return classHelper; } }