[hibernate-issues] [Hibernate-JIRA] Commented: (EJB-273) refresh() throws entity not managed exception
Charl Fourie (JIRA)
noreply at atlassian.com
Thu Sep 6 03:26:14 EDT 2007
[ http://opensource.atlassian.com/projects/hibernate/browse/EJB-273?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_28021 ]
Charl Fourie commented on EJB-273:
----------------------------------
I do not understand. We have to put hacks into our code because of some spec? I assume you are talking about the EJB3 spec? I also see this behaviour in other methods, and doing a merge before doing for example a "remove" effectively nullifies optimistic concurrency.
> refresh() throws entity not managed exception
> ---------------------------------------------
>
> Key: EJB-273
> URL: http://opensource.atlassian.com/projects/hibernate/browse/EJB-273
> Project: Hibernate Entity Manager
> Issue Type: Bug
> Components: EntityManager
> Affects Versions: 3.2.1
> Reporter: Charles Canning
> Priority: Critical
>
> When you call EntityManager.refresh() to reattach an entity to the entitymanager, it throws:
> java.lang.IllegalArgumentException: Entity not managed
> at org.hibernate.ejb.AbstractEntityManagerImpl.refresh(AbstractEntityManagerImpl.java:260)
> The code is:
> public void refresh(Object entity) {
> checkTransactionNeeded();
> //adjustFlushMode();
> try {
> if ( ! getSession().contains( entity ) ) {
> throw new IllegalArgumentException( "Entity not managed" );
> }
> getSession().refresh( entity );
> }
> catch (MappingException e) {
> throw new IllegalArgumentException( e.getMessage(), e );
> }
> catch (HibernateException he) {
> throwPersistenceException( he );
> }
> }
> It is checking if the object is already in the session - this will not allow me to reattach. If I "cast" the EM to the session delegate, refresh works fine because it doesn't contain this check.
> For more info, you can look at this forum topic :
> http://forum.hibernate.org/viewtopic.php?t=971661&start=0&postdays=0&postorder=asc&highlight=
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the hibernate-issues
mailing list