Google app engine 使用JPA在GAE中插入不同类型的实体
我是GAE和数据存储的新手 我正在尝试使用JPA在GAE数据存储中插入不同类型的实体。 例如,我必须插入Employee、EmployeePersonalInfo(具有Employee键)、EmployeeAddressInfo(具有EmployeePersonalInfo键)。这里我没有在实体之间创建任何外键关系Google app engine 使用JPA在GAE中插入不同类型的实体,google-app-engine,google-cloud-datastore,Google App Engine,Google Cloud Datastore,我是GAE和数据存储的新手 我正在尝试使用JPA在GAE数据存储中插入不同类型的实体。 例如,我必须插入Employee、EmployeePersonalInfo(具有Employee键)、EmployeeAddressInfo(具有EmployeePersonalInfo键)。这里我没有在实体之间创建任何外键关系 public class Employee{ private String name; private Key key; } public class EmployeePerso
public class Employee{
private String name;
private Key key;
}
public class EmployeePersonalInfo{
private String emailAddress;
private Key key;
private Key employeeKey;
}
public class EmployeeAddressInfo{
private String cityName;
private Key key;
private Key employeePersonalInfoKey;
}
i am trying to insert around 5 record on each table like
public class EmployeeController{
/*This method will be called for 5 times*/
public void insertEmployeeDetails(Employee emp,EmployeePersonalInfo perInfo,EmployeeAddressInfo addressInfo){
employeeDao.save(emp);
employeePersonalInfoDao.save(perInfo);
employeeAddressInfoDao.save(addressInfo);
}
}
每次调用DAO类的Save方法时,我都会打开EntityManager对象,并在操作后关闭
public void save(Employee emp){
EntityManager em = EMFService.get().createEntityManager();
em.save(emp);
em.close();
}
有时候我会遇到这样的例外
Caused by: java.lang.IllegalArgumentException: cross-group transaction need to be explicitly specified, see TransactionOptions.Builder.withXG
我已经看到了很多解决这个问题的方法,但我无法理解真正的问题和方法是什么。请帮帮我