Hi again,

Some quick tests show that no persist() or merge() should be necessary 
to update an entity inside a persistent context. I tested with Hibernate 
and Amber as persistence providers and in both cases, nothing was 
necessary. That was using Resin 3.1.5 and RESOURCE_LOCAL as transaction 
type, which means that the problem might be with the container managed 
transactions.

S!
D.

Daniel López escribió:
> AFAIK, using merge should not be necessary unless the entity has been 
> updated outside a "persistent context" and then needs to be synchronised 
> back with the DB contents. persist() is just for new entities so reading 
> the docs, updating an entity inside a persistent context should require 
> no action. Unless an exception is thrown, of course ;).
> 
> I'm going to do some tests...
> 
> S!
> D.
> 
> Matt Johnston escribió:
>> I think you will need to use either the persist() or merge() methods of 
>> the EntityManager in order to save your data to the database. In your 
>> case since you are updating an existing record, you will need to use:
>>
>> m_manager.merge(homeobj)
>>
>>
>> Matt
>>
>> Riccardo Cohen wrote:
>>> Hi
>>> I used to play with entity ejb with resin 3.0 with no problem. Now in 
>>> 3.1.5 I have this code :
>>>
>>>    @PersistenceContext(name="public") private EntityManager m_manager;
>>>
>>>    public boolean set_homeinfo(int id_user,String title)
>>>    {
>>>      boolean success=false;
>>>      Query hqr=m_manager.createQuery("select h from homeinfo h where 
>>> h.id_user="+id_user);
>>>      List<homeinfo> hitems = (List<homeinfo>)hqr.getResultList();
>>>      if (hitems.size()==1)
>>>      {
>>>        homeinfo homeobj=hitems.get(0);
>>>        System.out.println("title was "+homeobj.getTitle());
>>>        homeobj.setTitle(title);
>>>        success=true;
>>>      }
>>>      return(success);
>>>    }
>>>
>>> The select works all right, but the "title" field is never modified. I 
>>> added finer info on sql to see database requests in log, and there is no 
>>> "update". Did I miss something ?
>>>
>>> I looked at the resin amber tutorials, but there are only "select" 
>>> samples, I did not see "insert" and "update" samples... I remember 
>>> problems like this with 3.0 when the entity bean was reused, it was not 
>>> saved, but here it is not the case.
>>>
>>> Thanks for any help.



_______________________________________________
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest

Reply via email to