我正在使用 JPA2 和 EclipseLink。我想使用带有 @ReadOnly 注释的实体。因此,在正常情况下,这些实体不应像整个持久性单元上的 Java 对象一样被更改和唯一。
但是我怎样才能初始化它们呢?它们需要以某种方式到达数据库。我可以在特定情况下引导它们吗 - 例如当我知道没有其他事务和缓存在使用时?
最佳答案
确实不应写入 @ReadOnly JPA 实体,因此您不能使用 PersistenceManager(通过 persist() 方法)来初始化它们。但是,您可以创建一个实用程序类,该实用程序类在应用程序启动时运行,并包含一组静态创建的这些实体以及使用 native 查询将它们插入数据库的引导方法。
显然,如何使此类执行取决于您的应用程序,但我还建议使该类足够智能,仅添加数据库中尚未存在的实体。这样,您的类将在您的应用程序维护时发挥作用。
关于java - 如何在 JPA/EclipseLink 中初始化 @ReadOnly 实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20388909/