Google app engine googleappengine中的JPA一对多关系
我有一对多关系(个人资料到消息)。我试图保存某个用户/配置文件拥有的邮件。下面的代码有什么问题Google app engine googleappengine中的JPA一对多关系,google-app-engine,jpa,Google App Engine,Jpa,我有一对多关系(个人资料到消息)。我试图保存某个用户/配置文件拥有的邮件。下面的代码有什么问题 public Message createMessage(Message msg, String recepient) { EntityManager em = EMF.get().createEntityManager(); UserAccess access = new UserAccess(); Profile user = access.searchUser(recep
public Message createMessage(Message msg, String recepient) {
EntityManager em = EMF.get().createEntityManager();
UserAccess access = new UserAccess();
Profile user = access.searchUser(recepient);
msg.setUser(user);
em.getTransaction().begin();
em.persist(msg);
em.getTransaction().commit();
em.close();
return msg;
}
搜索用户方法
public Profile searchUser(String displayName){
EntityManager em = EMF.get().createEntityManager();
Profile user;
try{
Query q = em.createNamedQuery("Profile.searchByDisplayName");
q.setParameter("displayName", displayName);
user = (Profile) q.getSingleResult();
} catch(javax.persistence.NoResultException e){
user = null;
}
em.close();
return user;
}
我遇到以下错误:
java.lang.IllegalStateException: Primary key for object of type Profile is null.
这可能是因为您的概要文件实体中没有定义“Id”(主键)吗?或在创建特定配置文件时未设置为任何值 此外,检查配置文件和消息实体之间的关系是否定义正确
那么从命名查询返回的对象处于什么对象状态?还是一个空对象?显然,日志告诉你什么是happening@JR加利亚:这是一个很小的请求,如果你在这里简单地告诉别人这个问题是什么以及你是如何解决的,这将对其他人有所帮助。