Como sabem, objetos a serem persistidos devem possuir um atributo com anotação @Id
Gostaria de saber se é possível, e como posso pegar esse atributo Id, passando um objeto do tipo Genérico(Object), sem trabalhar direto com as instancias de classe:
cliente1.getId() ou produto1.getId(), por exemplo.
Mas e quando o objeto não está no banco ainda?
No caso, quando eu inseri na list do meu TableModel, porém ainda não cliquei no “Gravar” ele ainda não se encontra no banco, e eu queria pegar o Id dele antes de gravá-lo.
Ja fiz um método com reflection que funcionou mas fica meio gambiarresco:
Mas gostaria de saber se tem um jeito mais simples.
Pois o próprio hibernate tem que fazer isso em alguns casos, será que ele faz por reflection também?
public class TesteUsuario {
public static ApplicationContext appContext = new ClassPathXmlApplicationContext(“META-INF/coreApplicationContext.xml”);
private static final DAOFactory daoFactory = new DAOFactory();
public static void main(String args[]){
daoFactory.setApplicationContext(appContext);
UsuarioDAO usuarioDAO1 = DAOFactory.getDAOByInterface(UsuarioDAO.class);
Usuario usuario = usuarioDAO1.findByLoginAndPassword(“rogerio”, “1234”);
System.out.println("Id do usuário: " + usuario.getId());
}
}[/code]
Erro: “Exception in thread “main” org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named ‘usuarioDAOImpl’ is defined”
Então adicionei no coreApplicationContext:
Erro: “org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [javax.persistence.EntityManagerFactory] is defined”
Obs.: meu projeto é desktop e criei um novo só para testar as classes dos links do br.com.wryel (.dao, .dao.impl, .helper, .model, .model.entity, .model.impl).
Estaria faltando algum arquivo/mapeamento? Estou usando Spring 3.2.3 e pretendo usar Hibernate, com anotações.