GAE とデータストアは初めてです
JPA を使用して GAE Datastore にさまざまなタイプのエンティティを挿入しようとしています。たとえば、Employee、EmployeePersonalInfo(Employee キーを持つ)、EmployeeAddressInfo(EmployeePersonalInfo キーを持つ) を挿入する必要があります。ここでは、エンティティ間の外部キー関係を作成していません。私のエンティティは次のようになります
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
この問題に対する非常に多くの解決策を見てきましたが、本当の問題と解決策が何であるかを理解できません。私を助けてください