java - 使用 JPA 在浏览器存储中持久保存第 3 方实体

标签 java gwt jpa local-storage errai

我有两个项目(app.ui 和模型)。 models 是 app.ui 中的依赖项。那里有所有的实体类。 app.ui 是一个 errai 项目,它使用 JPA 在浏览器存储中保存对象。

所以,我正在遵循注释和内容方面的文档。如果我在 app.ui 中创建一个类并尝试将其保存在本地,它就会起作用。但是如果我在 models.jar 中有具有完全相同注释的相同类

java.lang.IllegalArgumentException: com.magick.models.shared.Strategy is not a known entity type
  org.jboss.errai.jpa.client.local.ErraiMetamodel.entity(ErraiMetamodel.java:92)
  org.jboss.errai.jpa.client.local.ErraiMetamodel.entity(ErraiMetamodel.java:108)
  org.jboss.errai.jpa.client.local.ErraiMetamodel.entity(ErraiMetamodel.java:113)
  org.jboss.errai.jpa.client.local.ErraiEntityManager.changeEntityState(ErraiEntityManager.java:180)
  org.jboss.errai.jpa.client.local.ErraiEntityManager.persist(ErraiEntityManager.java:469)
  app.client.local.strategy.StrategyProducer.saveStrategyLocally(StrategyProducer.java:83)
  app.client.local.strategy.StrategyProducer.saveStrategiesInBrowser(StrategyProducer.java:78)
  app.client.local.strategy.StrategyProducer.access$3(StrategyProducer.java:76)
  app.client.local.strategy.StrategyProducer$1$1.callback(StrategyProducer.java:68)
  app.client.local.strategy.StrategyProducer$1$1.callback(StrategyProducer.java:1)

有什么想法吗?

提前致谢。

最佳答案

为了实现此目的,需要在浏览器本地存储上持久保存的模型应使用 @Entity 进行注释,并且应驻留在客户端包中,因为 errai 会忽略 errai-jpa-client 的 persistence.xml 并在客户端包中扫描它。

即在GWT编译的包中。

还尝试使用浏览器插件检查本地存储的内容。

希望这有帮助。

关于java - 使用 JPA 在浏览器存储中持久保存第 3 方实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20060848/

相关文章:

java - 通过RequestFactory更新多个实体

java - 在对象图中使用预先加载然后延迟加载来获取 N 级对象

java - 如何在 ServletAPI (Spring MVC) 中限制每个用户的请求

java - 为什么在 Java 的同一个类中不能有抽象方法和静态方法

用于匿名类的 Java 8 Lambda

java - 如何获取树项的所有父级?

java - 使用 IMAP 或 Exchange Web 服务从 GWT 应用程序的 Exchange Server 获取电子邮件的最快方法是什么?

java - hibernate 无法在注释方法中指定通用属性标识符

java - ClassNotFoundException : org. hibernate.service.jndi.JndiException

java - 广播接收器不起作用