我有在工作正常谷歌应用程序引擎的应用程序。 我意识到,一个上,我忘了实现equals和hashCode我JDO增强对象(我需要使用一组对象)。 所以我做了。 我真的没有做任何事情,在这些实施特殊的,其实我只是用Eclipse来生成它们。 像这样:
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;
@Persistent
private String appleId;
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result
+ ((appleId == null) ? 0 : appleId.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
User other = (User) obj;
if (appleId == null) {
if (other.appleId != null)
return false;
} else if (!appleId.equals(other.appleId))
return false;
return true;
}
所以,现在,当我尝试打在应用程序中的任何URL,此异常得到投掷:
/ ADDUSER javax.jdo.JDOUserException:持久化类“类com.bpapa.myapp.domain.User似乎并没有得到增强,您可能需要重新运行增强并为您在输出的错误。” 在数据库中没有表,但操作需要它。 请检查元数据这个类的规范。 在org.datanucleus.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:427)在org.datanucleus.jdo.JDOQuery.execute(JDOQuery.java:249)在com.bpapa.myapp.servlet.AddUserServlet.doPost(AddUserServlet.java :34)
什么我做错了任何想法?