Update

Boa tarde galera estou tentando fazer um UPDATE, mas está dando erro, alguém pode me ajudar?

public void atuliazar (Usuario codigo_usuario){
            EntityManager em = EntityManagerUtil.getEntityManager();
            try {
                
                em.getTransaction().begin();
                
                Query query = em.createQuery(
                        "UPDATE Usuario SET nome_usuario=?, cargo=?, login=?, senha=? WHERE codigo_usuario=?")
                        .setParameter(1, codigo_usuario);
                
                        query.executeUpdate();

			em.getTransaction().commit();
                        
            } catch (Exception e) {
                
                e.printStackTrace();
			em.getTransaction().rollback();

		} finally {

			em.close();

            }
        }

classe de teste

[code]

public class TestLogin {
public static void main(String[] args) {

	Usuario u = new Usuario();
            
	u.setCodigo_usuario(6);
	u.setNome_usuario("teste");
            u.setCargo("dev");
            u.setLogin("Balabas");
	u.setSenha("master");
            
	UsuarioDAO d = new UsuarioDAO();
	d.atuliazar(u);

}

}[/code]

alguém?

está dando o seguinte erro


Caused by: org.hibernate.PersistentObjectException: detached entity passed to persist: br.com.banhotosa.Model.Usuario

[quote=rafaelshock]Boa tarde galera estou tentando fazer um UPDATE, mas está dando erro, alguém pode me ajudar?

public void atuliazar (Usuario codigo_usuario){
            EntityManager em = EntityManagerUtil.getEntityManager();
            try {
                
                em.getTransaction().begin();
                
                Query query = em.createQuery(
                        "UPDATE Usuario SET nome_usuario=?, cargo=?, login=?, senha=? WHERE codigo_usuario=?")
                        .setParameter(1, codigo_usuario);
                
                        query.executeUpdate();

			em.getTransaction().commit();
                        
            } catch (Exception e) {
                
                e.printStackTrace();
			em.getTransaction().rollback();

		} finally {

			em.close();

            }
        }

classe de teste

[code]

public class TestLogin {
public static void main(String[] args) {

	Usuario u = new Usuario();
            
	u.setCodigo_usuario(6);
	u.setNome_usuario("teste");
            u.setCargo("dev");
            u.setLogin("Balabas");
	u.setSenha("master");
            
	UsuarioDAO d = new UsuarioDAO();
	d.atuliazar(u);

}

}[/code][/quote]

Olá.

Amigo, não tenho certeza, mas na tua query você está pedindo 5 parâmetros, porém está passando apenas 2.

Tente modificar sua query ou adicionar os parâmetros restantes.

Att.

Artur Martini

seria assim?

[code]

public void atualizar(Usuario usuario){
String sql = “update Usuario set Nome_usuario=? , Cargo=?, Login=?, Senha=? where Codigo_usuario=?”;

    try {  
        PreparedStatement stmt = connection.prepareStatement(sql);  
        stmt.setString(1, usuario.getNome_usuario());  
        stmt.setString(2, usuario.getCargo());  
        stmt.setString(3, usuario.getLogin());  
        stmt.setString(4, usuario.getSenha());
        stmt.setInt(5, usuario.getCodigo_usuario());  

        // excutar  
        stmt.execute();  

        // fechar a conexao  
        stmt.close();  

    } catch (SQLException e) {  
        throw new RuntimeException(e);  
    }  

} [/code]

alguém?

faz assim e posta o erro que esta dando aqui

public void atualizar(Usuario usuario){  
       String sql = "update Usuario set Nome_usuario=? , Cargo=?, Login=?, Senha=? where Codigo_usuario=?";  
         
       try {    
           PreparedStatement stmt = connection.prepareStatement(sql);    
           stmt.setString(1, usuario.getNome_usuario());    
           stmt.setString(2, usuario.getCargo());    
           stmt.setString(3, usuario.getLogin());    
           stmt.setString(4, usuario.getSenha());  
           stmt.setInt(5, usuario.getCodigo_usuario());    
  
           // excutar    
           stmt.execute();    
  
           // fechar a conexao    
           stmt.close();    
  
       } catch (SQLException e) {    
           e.printStackTrace();
       }    
  
   }   
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Caused by: org.hibernate.PersistentObjectException: detached entity passed to persist: br.com.banhotosa.Model.Usuario
	at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:141)
	at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:78)
	at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:853)
	at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:827)
	at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:831)
	at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:875)
	... 130 more

alguém?