我创建了一个非常简单的Spring Roo 1.2.5项目,其中包含一个实体类MyEntity,它有一些字符串变量。
我添加了
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
到MyEntity.java创建一个主键,并生成Spring Roo
@Test
public void MyEntityIntegrationTest.testFindMyEntity() {
MyEntity obj = dod.getRandomMyEntity();
Assert.assertNotNull("Data on demand for 'MyEntity' failed to initialize correctly", obj);
Integer id = obj.getPrimaryKey();
Assert.assertNotNull("Data on demand for 'MyEntity' failed to provide an identifier", id);
obj = MyEntity.findMyEntity(id);
Assert.assertNotNull("Find method for 'MyEntity' illegally returned null for id '" + id + "'", obj);
Assert.assertEquals("Find method for 'MyEntity' returned the incorrect identifier", id, obj.getPrimaryKey());
}
MyEntityIntegrationTest_Roo_IntegrationTest.aj文件中的。但是有两个问题:
1)类型是int,那么为什么Roo将它分配给Integer,然后测试null?如果类型为int,则结果不能为null
2)最终断言无法编译,因为JDK 6编译器无法解析assertEquals(Integer,int)的类型:
The method assertEquals(String, Object, Object) is ambiguous for the type Assert MyEntityIntegrationTest_Roo_IntegrationTest.aj /mu/src/test/java/com/sas/mu line 47 Java Problem
我可以"修复"这是我将字段更改为Integer或Long但@Id表示原语 是允许的。
我怀疑这是一个Roo 1.2.5错误吗?有修复吗?
答案 0 :(得分:1)
我认为这是一个Spring Roo错误,因此,您可以在Spring Roo Jira上创建请求。
要在项目中修复它,虽然bug没有解决,但您可以推送testFindMyEntity
方法来测试类并手动修复代码。 Spring Roo不会在.aj
文件中再次生成它。