如何即时声明实体?

时间:2011-01-18 07:52:54

标签: java jpa jpf

我尝试使用Java plugin framework开发Java插件应用程序。所有插件都可以使用JPA(使用Eclipselink)访问uniq数据库。

但每个插件都有自己的实体。

所以我无法在核心插件中的一个唯一文件persitence.xml中声明所有实体。

问题是:在声明EntityManagerFactory时是否可以动态声明实体类?我已经在使用Map从用户配置文件中获取连接字符串和用户/密码。

有没有办法对实体做同样的事情?

Map<String, String> p = new HashMap<String, String>();
p.put("javax.persistence.jdbc.url", dns);
p.put("javax.persistence.jdbc.driver", "com.mysql.jdbc.Driver");
p.put("javax.persistence.jdbc.user", config.getProperty("com.cjrf.xbmo.db.username", ""));
p.put("javax.persistence.jdbc.password", config.getProperty("com.cjrf.xbmo.db.password", ""));
entityManagerFactory = Persistence.createEntityManagerFactory("mediamanager", p);

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

如果您唯一关注的是不在persistence.xml中声明类文件,那么您可以使用自动检测功能。

对于eclipselink,将其添加到persistence.xml

<exclude-unlisted-classes>false</exclude-unlisted-classes>

现在,将自动扫描与@Entity映射的所有注释。