我有两个项目(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/