我正在关注zentask教程并写了一个junit测试, 测试不会从eclipse IDE运行它给出以下异常
javax.persistence.PersistenceException: java.lang.IllegalStateException: Class [class play.db.ebean.Model] is enhanced and [class models.User] is not - (you can not mix!!)
at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.setEntityBeanClass(BeanDescriptorManager.java:1475)
at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.createByteCode(BeanDescriptorManager.java:1138)
at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.readDeployAssociations(BeanDescriptorManager.java:1058)
at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.readEntityDeploymentAssociations(BeanDescriptorManager.java:565)
at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.deploy(BeanDescriptorManager.java:252)
at com.avaje.ebeaninternal.server.core.InternalConfiguration.<init>(InternalConfiguration.java:124)
at com.avaje.ebeaninternal.server.core.DefaultServerFactory.createServer(DefaultServerFactory.java:210)
at com.avaje.ebeaninternal.server.core.DefaultServerFactory.createServer(DefaultServerFactory.java:64)
我读了一下,发现对某些人来说 编辑buils.scala在main帮助中添加以下行:ebeanEnabled:= true
对我而言,它并没有关闭运行play clean编译的ide
任何想法???
答案 0 :(得分:15)
关于设置要在IDE中运行的单元测试,有blog post。它建议在运行测试时使用以下命令行添加:
-javaagent:/path/to/ebean/ebean-2.7.3-agent.jar
似乎Play没有附带ebean代理,应首先从Ebean网站下载(在主ebean包中)。
我没试过。
Ebean user guide也提到了它( 15.5.2 javaagent 部分),甚至还有配置Eclipse的例子。
另外,为了加快提升速度,这可能会更好:
-javaagent:/path/to/ebean/ebean-2.7.3-agent.jar;packages=models.*
所以它只会查看models.*
(Play中ORM模型的默认包)。
答案 1 :(得分:6)
您可以使用Avaje Ebean Eclipse插件:
http://www.avaje.org/eclipseupdate/site.xml
安装完成后,右键单击项目并选择“启用Ebean增强”,激活Ebean增强功能。
答案 2 :(得分:0)
当我试图从扩展Model的类之一的声明中删除public修饰符时,我收到此错误。
我正在使用模型制作一个“通过”表(与其他信息有多对多的关系),因此受保护的访问是有意义的。或许有另一种方法可以做到这一点,但是戏剧javadoc非常稀疏。