Hibernate3 Persistence Error

Olá galera do PJ, estou precisando da ajuda de vcs…

eu tenho o código abaixo, onde eu consigo listar, porém nao persisto, nem altero e nem excluo nenhum objeto. eu nao sei o que pode estar errado, mas pesquisando na net, eu vi que a propriedade do meu “ID” no hbm.xml talvez nao devesse ser <generator class=“increment”/>. alguem tem uma ideia do que pode ser, e se for esse o motivo, como faço para que meu ID seja incremental e automatico através do hibernate?

public class FachadaCliente &#123;
    
    EntityManagerFactory factory;
    EntityManager manager;
    
    public FachadaCliente&#40;&#41; &#123;
    &#125;
    
    public void init&#40;&#41; &#123;
        factory = Persistence.createEntityManagerFactory&#40;&quot;myPU&quot;&#41;;
        manager = factory.createEntityManager&#40;&#41;;
    &#125;
    
    private void shutdown&#40;&#41; &#123;
        manager.close&#40;&#41;;
        factory.close&#40;&#41;;
    &#125;
    

    public List listAll&#40;&#41; &#123;
         EntityTransaction tx = null;        
         List&lt;TipoClienteDO&gt; results = null;
        try &#123;
            init&#40;&#41;;
            tx= manager.getTransaction&#40;&#41;;
            tx.begin&#40;&#41;;
            System.out.println&#40;&quot;searching for people&quot;&#41;;
            Query query = manager.createQuery&#40;&quot;select t from TipoClienteDO t&quot;&#41;;
            results = &#40;List&lt;TipoClienteDO&gt;&#41;query.getResultList&#40;&#41;;
            tx.commit&#40;&#41;;
        
            shutdown&#40;&#41;;
        &#125; catch &#40;Exception ex&#41; &#123;
            tx.rollback&#40;&#41;;
            shutdown&#40;&#41;;
        &#125;
        
        return results;
    &#125;
    
    public TipoClienteDO getTipoClienteById&#40;BigInteger id&#41; &#123;
        EntityTransaction tx = null;        
         TipoClienteDO tc = null;
        try &#123;
            init&#40;&#41;;
            tx= manager.getTransaction&#40;&#41;;
            tx.begin&#40;&#41;;
            System.out.println&#40;&quot;searching for people&quot;&#41;;
            Query query = manager.createQuery&#40;&quot;select t from  TipoClienteDO t where id=&quot;+ id&#41;;
            tc = &#40;TipoClienteDO&#41;query.getSingleResult&#40;&#41;;
            tx.commit&#40;&#41;;
        
            shutdown&#40;&#41;;
        &#125; catch &#40;Exception ex&#41; &#123;
            tx.rollback&#40;&#41;;
            shutdown&#40;&#41;;
        &#125;
        
        return tc;
    &#125;
    
    public void save&#40;TipoClienteDO tc&#41; &#123;
        EntityTransaction tx = null;        
        try &#123;
            init&#40;&#41;;
            tx= manager.getTransaction&#40;&#41;;
            tx.begin&#40;&#41;;
            manager.persist&#40;tc&#41;;
            tx.commit&#40;&#41;;
            shutdown&#40;&#41;;
        &#125; catch &#40;Exception ex&#41; &#123;
            tx.rollback&#40;&#41;;
            shutdown&#40;&#41;;
        &#125;
    &#125;
    
    public void update&#40;TipoClienteDO tc&#41; &#123;
        EntityTransaction tx = null;        
        try &#123;
            init&#40;&#41;;
            tx= manager.getTransaction&#40;&#41;;
            tx.begin&#40;&#41;;
            manager.merge&#40;tc&#41;;
            tx.commit&#40;&#41;;
            shutdown&#40;&#41;;
        &#125; catch &#40;Exception ex&#41; &#123;
            tx.rollback&#40;&#41;;
            shutdown&#40;&#41;;
        &#125;
    &#125;
    
    public void delete&#40;TipoClienteDO tc&#41; &#123;
        EntityTransaction tx = null;        
        try &#123;
            init&#40;&#41;;
            tx= manager.getTransaction&#40;&#41;;
            tx.begin&#40;&#41;;
            manager.remove&#40;tc&#41;;
            tx.commit&#40;&#41;;
            shutdown&#40;&#41;;
        &#125; catch &#40;Exception ex&#41; &#123;
            tx.rollback&#40;&#41;;
            shutdown&#40;&#41;;
        &#125;
    &#125;
&#125;

meu mapeamento no hiberntate esta assim:

&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;!DOCTYPE hibernate-mapping PUBLIC
&quot;-//Hibernate/Hibernate Mapping DTD 3.0//EN&quot;
&quot;http&#58;//hibernate.sourceforge.net/hibernate-mapping-3.0.dtd&quot;&gt;
&lt;hibernate-mapping&gt;
    &lt;class name=&quot;br.com.hstar.model.cliente.TipoClienteDO&quot; table=&quot;tipoCliente&quot;&gt;
        &lt;id name=&quot;id&quot; column=&quot;id&quot; type=&quot;long&quot;&gt;
            &lt;generator class=&quot;increment&quot;/&gt;
        &lt;/id&gt;        
        &lt;property name=&quot;descricao&quot; column=&quot;descricao&quot; type=&quot;string&quot;/&gt;
    &lt;/class&gt;
&lt;/hibernate-mapping&gt;

meu persistence.xml esta assim:

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;persistence version=&quot;1.0&quot; xmlns=&quot;http&#58;//java.sun.com/xml/ns/persistence&quot; xmlns&#58;xsi=&quot;http&#58;//www.w3.org/2001/XMLSchema-instance&quot; xsi&#58;schemaLocation=&quot;http&#58;//java.sun.com/xml/ns/persistence http&#58;//java.sun.com/xml/ns/persistence/persistence_1_0.xsd&quot;&gt; &lt;persistence-unit name=&quot;myPU&quot; transaction-type=&quot;RESOURCE_LOCAL&quot;&gt; &lt;provider&gt;org.hibernate.ejb.HibernatePersistence&lt;/provider&gt; &lt;class&gt;br.com.hstar.model.cliente.TipoClienteDO&lt;/class&gt; &lt;properties&gt; &lt;property name=&quot;hibernate.connection.url&quot; value=&quot;jdbc&#58;postgresql&#58;//localhost&#58;5432/hstar&quot;/&gt; &lt;property name=&quot;hibernate.connection.driver_class&quot; value=&quot;org.postgresql.Driver&quot;/&gt; &lt;property name=&quot;hibernate.connection.password&quot; value=&quot;.pg12345.&quot;/&gt; &lt;property name=&quot;hibernate.connection.username&quot; value=&quot;postgres&quot;/&gt; &lt;property name=&quot;hibernate.cache.provider_class&quot; value=&quot;org.hibernate.cache.NoCacheProvider&quot;/&gt; &lt;property name=&quot;hibernate.hbm2ddl.auto&quot; value=&quot;update&quot;/&gt; &lt;/properties&gt; &lt;/persistence-unit&gt; &lt;/persistence&gt;

o erro que está aparecendo quando eu olho a exceção é:
IllegalArgumentException: “Removing a detached instance br.com.hstar.model.cliente.TipoClienteDO#1”

alguem por favor poderia me dar ima solução??

vc esta fazendo o load() para montar o objeto antes de tentar manipula-lo???

a sua PK eh auto-increment certo? vc configurou isso no banco ou realmente esta querendo q o Hibernate faça a incrementação por vc? eu prefiro usar no banco, confio mais…aih no hbm.xml coloco &lt;generator class=&quot;native&quot;/&gt;

bom, ve aih e posta pra gente…

flw

Na verdade eu gostartia que o Hibernate fizesse isso para mim. Eu achava que era só colocar o parametro “sequence” e ele faria o resto…

alguma sugestão??

vlw…

como eu disse no post anterior, eu prefiro q o banco cuide do auto-increment, essa eh a minha sugestão…
flw