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 


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

Reply via email to