Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在JPA/EclipseLink中初始化@ReadOnly实体_Java_Jpa_Eclipselink_Jpa 2.0 - Fatal编程技术网

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

Java 如何在JPA/EclipseLink中初始化@ReadOnly实体,java,jpa,eclipselink,jpa-2.0,Java,Jpa,Eclipselink,Jpa 2.0,我正在使用JPA2和EclipseLink。我想使用带有@ReadOnly注释的实体。因此,在正常情况下,这些实体不应该在整个持久化单元中作为Java对象进行更改和唯一性 但是我如何初始化它们呢?他们需要以某种方式进入数据库。我可以在特定情况下引导它们吗?例如,当我知道没有其他事务和缓存在使用时?确实不应该写入@ReadOnly JPA实体,因此您不能通过persist方法使用PersistenceManager来初始化它们。但是,您可以创建一个实用程序类,该类在应用程序启动时运行,并包含一组静

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


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

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


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

传统的SQL插入有什么问题吗?嗯,有点难看;-我更愿意利用JPA O2R映射的功能…谢谢,Steve。所以没有办法暂时禁用@ReadOnly行为?我有一个配置模式,可以确保在特定条件下无CAHCE、无性能要求等。。我希望使用JPA来持久保存此配置数据。据我所知,没有办法临时禁用@ReadOnly。经过进一步研究,我在工作单元的API中找到了addReadonlyCassb.class方法。A做了一些实验——似乎可以在事务级别控制只读属性。正好满足我的需要。但我还没有发现太多关于它的东西。有什么经验吗?你解决这个问题了吗?我也面临同样的问题。。。我唯一的想法是自己实现这个缓存特性。我现在使用FlywayDB通过Maven构建来执行数据库迁移——我只需使用这些迁移添加所需的只读值。