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

标签 java jpa eclipselink jpa-2.0

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

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

最佳答案

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

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

关于java - 如何在 JPA/EclipseLink 中初始化 @ReadOnly 实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20388909/

相关文章:

java - 如何使用 JPA 使库对象数据库持久化?

jaxb - moxy:RuntimeTypeInfoSet 的等价物是什么

java - 使用java防篡改Excel文档

java - 在android中获取当前位置一次

java - Java 中的另一个字符串拆分

java - 从数据库为 JPA 实体生成自定义代码

java - 具有主 ID 和修订 ID 的 Hibernate 实体

java - 当有行时 JPQL 计数返回 0

tomcat - 如何解决Tomcat上的持久化单元

java - 当android杀死我的进程时启动MainActivity