]> git.mxchange.org Git - jjobs-ejb.git/commitdiff
Please cherry-pick:
authorRoland Häder <roland@mxchange.org>
Wed, 31 Aug 2016 14:45:52 +0000 (16:45 +0200)
committerRoland Haeder <roland@mxchange.org>
Wed, 31 Aug 2016 19:56:54 +0000 (21:56 +0200)
- the user instance needs to be merged into current persience context, else some of its child entities will be persisted (inserted) again

src/java/org/mxchange/jusercore/model/user/JobsUserSessionBean.java

index 982da110217a6741de677b5778438ba1749c359f..cdd34a19a67e05448e1b1c478ca73124bdb0984a 100644 (file)
@@ -645,13 +645,15 @@ public class JobsUserSessionBean extends BaseJobsDatabaseBean implements UserSes
                User managedUser = this.updateUserData(user);
 
                // Create history entry
-               PasswordHistory entry = new UserPasswordHistory();
+               PasswordHistory entry = new UserPasswordHistory(managedUser.getUserEncryptedPassword(), managedUser);
 
-               // Set all data here to avoid user instance become detached again
-               entry.setUserPasswordHistoryPasswordHash(managedUser.getUserEncryptedPassword());
-               entry.setUserPasswordHistoryUser(this.getManagedUser(user));
+               // Set created timestamp
                entry.setUserPasswordHistoryCreated(new GregorianCalendar());
 
+               // Merge user to make sure it is not re-persisted
+               User mergedUser = this.getEntityManager().merge(managedUser);
+               entry.setUserPasswordHistoryUser(mergedUser);
+
                // Persist it
                this.getEntityManager().persist(entry);