Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Entity
- public class User {
- @Id
- @Column(name = "USER_ID", allowsNull="false")
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- private Key userId;
- @Column(name = "USER_NAME", allowsNull="false")
- private String userName;
- @OneToOne(cascade = CascadeType.ALL,optional=false,orphanRemoval = true)
- @JoinColumn(name = "USER_ID")
- private UserDetails userDetails;
- //getters & setters
- }
- @Entity(name="USER_DETAILS")
- public class UserDetails {
- @Id
- @Column(name = "USER_ID", allowsNull="false")
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- private Key userId;
- @Column(name = "USER_FULLNAME", allowsNull="false")
- private String userFullname;
- @Column(name = "USER_IMAGEURL", allowsNull="false")
- private String userImageURL;
- @Column(name = "USER_PASSPHRASE", allowsNull="false")
- private String userPassPhrase;
- @OneToOne(cascade = CascadeType.ALL,optional=false)
- @JoinColumn(name = "USER_ID")
- private UserPassword userPassword;
- //getters & setters
- }
- @Entity(name = "USER_PASSWORD")
- public class UserPassword {
- @Id
- @Column(name = "USER_ID", allowsNull="false")
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- private Key userId;
- @Column(name = "USER_PASSWORD", allowsNull="false")
- private String userPassword;
- //getters & setters
- }
- public void removeAllUsers() {
- log.info("UserEndpoint.removeAllUsers().....");
- EntityManager mgr = getEntityManager();
- User user = new User();
- try {
- CollectionResponse<User> allUsers = listUser(null, null);
- Collection<User> users = allUsers.getItems();
- Iterator<User> itr = users.iterator();
- log.info("UserEndpoint.removeAllUsers()....itr.hasNext="+itr.hasNext());
- while(itr.hasNext()){
- user = itr.next();
- user = mgr.find(User.class, user.getUserId());
- //mgr.getTransaction().begin();
- mgr.remove(user);
- //mgr.getTransaction().commit();
- log.info("UserEndpoint.removeAllUsers()....User removed");
- }
- } finally {
- mgr.close();
- }
- log.info("UserEndpoint.removeAllUsers()....End");
- }
- WARNING: Delete of com.bean.User@15a9289 needs delete of related object at com..bean.User.userDetails but cannot delete it direct since FK is here
- Jun 12, 2014 12:04:01 PM com.google.api.server.spi.SystemService invokeServiceMethod
- INFO: cause={0}
- javax.persistence.PersistenceException: Illegal argument
- at org.datanucleus.api.jpa.NucleusJPAHelper.getJPAExceptionForNucleusException(NucleusJPAHelper.java:298)
- at org.datanucleus.api.jpa.JPAEntityManager.close(JPAEntityManager.java:197)`enter code here`
- at com.cloudmobilebanking.bean.UserEndpoint.removeAllUsers(UserEndpoint.java:202)
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
- Caused by: java.lang.IllegalArgumentException: cross-group transaction need to be explicitly specified, see TransactionOptions.Builder.withXGfound both Element {
- type: "User"
- id: 0x10780000000000
- }
- and Element {
- type: "User"
- id: 0x12b80000000000
- }
- public void deletAllUsers(){
- log.info("UserEndpoint.deletAllUsers...");
- List<User> users = ofy().load().type(User.class).list();
- User user = null;
- try{
- for(int i=0; i< users.size(); i++){
- user = users.get(i);
- UserDetails userDetails = user.getUserDetails();
- UserPassword userPassword = user.getUserPassword();
- ofy().delete().entity(userDetails).now();
- ofy().delete().entity(userPassword).now();
- ofy().delete().entity(user).now();
- }
- }
- catch(Exception e){
- log.info("AccountEndpoint.deleteAllUsers()...exception="+e.getMessage());
- }
- log.info("AccountEndpoint.deletAllUsers...all users deleted");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement