我有一个Spring (1.2.2)项目,我正在尝试构建这个项目。通过一个干净的SCM签出,一个mvn clean install构建得很好。
但是,当我将项目导入到我的SpringSource工具套件IDE (与m2eclipse和RoO1.2.4一起打包)中时,Eclipse将调用roo来更新POM的<roo.version>,然后更新实体方面。在此之后,所有具有java.util.Date参数/返回类型的方法都不再工作,因为编译会在Date字段上产生symbol not found错误。
如何让Roo使用一种类型的Date而不是Calendar生成方面?
错误日志
[ERROR] /Users/jjzabkar/project/src/main/java/com/so/FooBar.java:209:0::0 The method setTokenExpires(Calendar) in the type FooBar is not applicable for the arguments (Date)
[ERROR] error at account.setLastaccessTime(Calendar.getInstance().getTime());研究
bin\roo;从源构建失败。log.roo文件中没有看到任何提及它们的地方:spring addon-审核-时间戳、spring-roo-addon-时间戳,它们的注释也没有出现在最初签出的文件中。旧POM
<roo.version>1.2.2.RELEASE</roo.version>更新POM
<roo.version>1.2.4.RELEASE</roo.version>FooBar.java实体
@RooJavaBean
@RooToString
@RooJpaActiveRecord(versionField = "", table = "foo_bar")
@RooDbManaged(automaticallyDelete = true)
public class FooBar {
}Roo版本1.2.2的方面在之前
privileged aspect FooBar_Roo_DbManaged {
...
@Column(name = "lastaccess_time")
@NotNull
@Temporal(TemporalType.TIMESTAMP)
@DateTimeFormat(style = "M-")
private Date FooBar.lastaccessTime;
public Date FooBar.getLastaccessTime() {
return lastaccessTime;
}
public void FooBar.setLastaccessTime(Date lastaccessTime) {
this.lastaccessTime = lastaccessTime;
}
}Roo版本1.2.4的方面之后的
privileged aspect FooBar_Roo_DbManaged {
...
@Column(name = "lastaccess_time")
@NotNull
@Temporal(TemporalType.TIMESTAMP)
@DateTimeFormat(style = "MM")
private Calendar FooBar.lastaccessTime;
public Calendar FooBar.getLastaccessTime() {
return lastaccessTime;
}
public void FooBar.setLastaccessTime(Calendar lastaccessTime) {
this.lastaccessTime = lastaccessTime;
}
}发布于 2013-12-23 07:44:09
在更新到Roo1.2.4之前,您应该将日期字段推入到.java,这样Roo不会再次生成它们,也不会将类型更改为Calendar。
https://stackoverflow.com/questions/20577063
复制相似问题