Dae galera… eu estou querendo implementar a seguinte lógica!!
Eu tenho um bean que é passado como parâmetro, através desse bean, eu quero chamar o DAO para inseri-lo, isso automatico, pois a unica coisa que muda nos dois é o final do nome da class: Ex: Cliente e ClienteDAO, eu fiz a seguinte estrutura:
[code] Class classBean = ( Class ) obj.getClass();
String nameDAO = classBean.getName().replaceAll("model", "persistence") + "DAO";
Class classDAO = Class.forName( nameDAO );
Constructor ct = classDAO.getConstructor();
Object dao = ct.newInstance();
Method method = dao.getClass().getMethod("insert", classBean );
method.invoke(classDAO, classBean); [/code]Só que quando eu chamo o seguinte trecho:
[code] Method method = dao.getClass().getMethod("insert", classBean ); [/code]
Ele dá esse erro:
java.lang.NoSuchMethodException: br.persistence.TipoEnderecoDAO.insert(br.model.TipoEndereco)
at java.lang.Class.getMethod(Class.java:1581)
at br.model.ALBusinessLogic.insert(ALBusinessLogic.java:30)
at testes.Teste.main(Teste.java:26)
A idéia é… que eu tivesse um método genérico para inserir , eu teria uma classe que seria implementada pelo meu bean para o mesmo ja ter o método insert automatico… nessa superclasse eu criaria um método insert e através de reflection eu chamaria o DAO especifico ja passando os parametros necessarios!!
Como eu executaria o método insert do meu DAO passando o parametro(que é o meu bean) que é recuperado nessa linha:
Class classBean = ( Class ) obj.getClass();
??
Abraço!