如何在JPA / EclipseLink中初始化@ReadOnly实体

时间:2013-12-05 00:14:50

标签: java jpa eclipselink jpa-2.0

我正在使用JPA2和EclipseLink。我想使用带有@ReadOnly注释的实体。因此,在正常情况下,这些实体不应该作为完整持久性单元上的Java对象进行更改和唯一。

但我怎样才能初始化它们?他们需要以某种方式到达数据库。我可以在特定情况下引导它们 - 例如当我知道没有其他交易和缓存在使用时?

1 个答案:

答案 0 :(得分:0)

确实不应该编写@ReadOnly JPA实体,因此不能使用PersistenceManager(通过persist()方法)来初始化它们。但是,您可以创建一个在应用程序启动时运行的实用程序类,它包含一组静态创建的实体,以及一个使用本机查询将它们插入数据库的引导方法。

显然,如何使该类执行将取决于您的应用程序,但我还建议使该类足够智能,只添加数据库中尚未存在的实体。这样,在维护应用程序时,您的类将非常有用。