2013-02-16 77 views
14

IM继zentask教程,并写了一个JUnit测试, 测试不会从Eclipse IDE中运行它给以下异常游戏框架2.1 JUnit测试不偏食工作

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添加以下线内主要帮助:ebeanEnabled:=真

我它没有nither closeing IDE中运行起到清洁编译

任何IDE如???

回答

15

有关于设置在IDE中运行的单元测试的blog post。它建议对以下命令行添加到运行测试时使用的Java:

-javaagent:/path/to/ebean/ebean-2.7.3-agent.jar 

似乎玩不附带ebean剂,应该从Ebean网站第一(在主ebean包)下载。

我没试过。

Ebean user guide也提到它(15.5.2 javaagent部分),甚至有配置Eclipse的例子。

此外,为加快提高,也许这会更好:

-javaagent:/path/to/ebean/ebean-2.7.3-agent.jar;packages=models.* 

所以它只会考虑models.*(默认包ORM模型播放)。

+0

感谢您的解决方案出色! – naoru 2013-02-18 12:39:32

+0

我在Play 2.1.5中使用avaje-ebeanorm-agent-3.2.2.jar尝试了这一点,但它似乎并没有在控制台中给出这个消息:transform> cls:play/db/ebean/Model msg:...忽略字段_ebean_intercept – Splaktar 2014-07-29 14:36:18

+1

@Splaktar请使用http://mirrors.ibiblio.org/maven2/org/avaje/ebean/2.7.3/中的jar ebean-2.7.3-agent.jar,这将会工作(现在玩2.2.6) – Manu 2015-01-11 17:39:39

0

我得到这个错误,当我试图从扩展模型的类之一的声明中删除公共修饰符。

我正在使用一个模型来创建一个“通过”表(与附加信息的多对多关系),所以受保护的访问是有意义的。也许还有另一种方法可以做到这一点,但玩javadoc是相当稀疏。