Advertisement
Guest User

Untitled

a guest
Jul 24th, 2014
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.70 KB | None | 0 0
  1. @Entity
  2.  
  3. public class User {
  4.  
  5. @Id
  6. @Column(name = "USER_ID", allowsNull="false")
  7. @GeneratedValue(strategy = GenerationType.IDENTITY)
  8. private Key userId;
  9.  
  10. @Column(name = "USER_NAME", allowsNull="false")
  11. private String userName;
  12.  
  13. @OneToOne(cascade = CascadeType.ALL,optional=false,orphanRemoval = true)
  14. @JoinColumn(name = "USER_ID")
  15. private UserDetails userDetails;
  16. //getters & setters
  17.  
  18. }
  19.  
  20.  
  21.  
  22. @Entity(name="USER_DETAILS")
  23.  
  24. public class UserDetails {
  25.  
  26. @Id
  27. @Column(name = "USER_ID", allowsNull="false")
  28. @GeneratedValue(strategy = GenerationType.IDENTITY)
  29. private Key userId;
  30.  
  31. @Column(name = "USER_FULLNAME", allowsNull="false")
  32. private String userFullname;
  33.  
  34. @Column(name = "USER_IMAGEURL", allowsNull="false")
  35. private String userImageURL;
  36.  
  37. @Column(name = "USER_PASSPHRASE", allowsNull="false")
  38. private String userPassPhrase;
  39.  
  40. @OneToOne(cascade = CascadeType.ALL,optional=false)
  41. @JoinColumn(name = "USER_ID")
  42. private UserPassword userPassword;
  43. //getters & setters
  44. }
  45.  
  46.  
  47. @Entity(name = "USER_PASSWORD")
  48.  
  49. public class UserPassword {
  50.  
  51. @Id
  52. @Column(name = "USER_ID", allowsNull="false")
  53. @GeneratedValue(strategy = GenerationType.IDENTITY)
  54. private Key userId;
  55.  
  56. @Column(name = "USER_PASSWORD", allowsNull="false")
  57. private String userPassword;
  58. //getters & setters
  59. }
  60.  
  61. public void removeAllUsers() {
  62.  
  63. log.info("UserEndpoint.removeAllUsers().....");
  64. EntityManager mgr = getEntityManager();
  65. User user = new User();
  66. try {
  67. CollectionResponse<User> allUsers = listUser(null, null);
  68. Collection<User> users = allUsers.getItems();
  69. Iterator<User> itr = users.iterator();
  70.  
  71. log.info("UserEndpoint.removeAllUsers()....itr.hasNext="+itr.hasNext());
  72. while(itr.hasNext()){
  73. user = itr.next();
  74. user = mgr.find(User.class, user.getUserId());
  75. //mgr.getTransaction().begin();
  76. mgr.remove(user);
  77. //mgr.getTransaction().commit();
  78.  
  79. log.info("UserEndpoint.removeAllUsers()....User removed");
  80. }
  81.  
  82. } finally {
  83. mgr.close();
  84. }
  85. log.info("UserEndpoint.removeAllUsers()....End");
  86. }
  87.  
  88. 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
  89. Jun 12, 2014 12:04:01 PM com.google.api.server.spi.SystemService invokeServiceMethod
  90. INFO: cause={0}
  91. javax.persistence.PersistenceException: Illegal argument
  92. at org.datanucleus.api.jpa.NucleusJPAHelper.getJPAExceptionForNucleusException(NucleusJPAHelper.java:298)
  93. at org.datanucleus.api.jpa.JPAEntityManager.close(JPAEntityManager.java:197)`enter code here`
  94. at com.cloudmobilebanking.bean.UserEndpoint.removeAllUsers(UserEndpoint.java:202)
  95. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  96. at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  97.  
  98. Caused by: java.lang.IllegalArgumentException: cross-group transaction need to be explicitly specified, see TransactionOptions.Builder.withXGfound both Element {
  99. type: "User"
  100. id: 0x10780000000000
  101. }
  102. and Element {
  103. type: "User"
  104. id: 0x12b80000000000
  105. }
  106.  
  107. public void deletAllUsers(){
  108. log.info("UserEndpoint.deletAllUsers...");
  109. List<User> users = ofy().load().type(User.class).list();
  110. User user = null;
  111. try{
  112. for(int i=0; i< users.size(); i++){
  113. user = users.get(i);
  114. UserDetails userDetails = user.getUserDetails();
  115. UserPassword userPassword = user.getUserPassword();
  116. ofy().delete().entity(userDetails).now();
  117. ofy().delete().entity(userPassword).now();
  118. ofy().delete().entity(user).now();
  119. }
  120. }
  121.  
  122. catch(Exception e){
  123. log.info("AccountEndpoint.deleteAllUsers()...exception="+e.getMessage());
  124. }
  125. log.info("AccountEndpoint.deletAllUsers...all users deleted");
  126. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement