]> git.mxchange.org Git - addressbook-ejb.git/commitdiff
Fixed: (please cherry-pick)
authorRoland Häder <roland@mxchange.org>
Wed, 10 Aug 2016 12:53:58 +0000 (14:53 +0200)
committerRoland Haeder <roland@mxchange.org>
Tue, 16 Aug 2016 19:41:57 +0000 (21:41 +0200)
- em.remove() needs a managed entity, not a one passed from e.g. a controller
- still this method may throw an exception, e.g. when an other entity (table) references this entity
- but since deleteCellphoneNumber() *should* delete cell phone numbers, it doesn't care if the entity is still referenced.
- this needs to be taken care of the controller and not the EJB (job-executor)

src/java/org/mxchange/jphone/phonenumbers/phone/AddressbookAdminPhoneSessionBean.java

index acb4f6ab186407e09f6ecafe5c6c6decca8fef3c..c9f1ce6edaf78f3c39b8f33e8b24fe0c652d9979 100644 (file)
@@ -67,8 +67,11 @@ public class AddressbookAdminPhoneSessionBean extends BaseAddressbookDatabaseBea
                        throw new NullPointerException(MessageFormat.format("cellphoneNumber.phoneNumber={0} is not valid.", cellPhoneNumber.getPhoneNumber())); //NOI18N
                }
 
+               // Merge it to get a managed entity back
+               DialableCellphoneNumber managedNumber = this.getEntityManager().getReference(cellPhoneNumber.getClass(), cellPhoneNumber.getPhoneId());
+
                // Remove it from database
-               this.getEntityManager().remove(cellPhoneNumber);
+               this.getEntityManager().remove(managedNumber);
 
                // Trace message
                this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.deleteCellphoneData: EXIT!", this.getClass().getSimpleName()));