Quando eu tiver mais tempo vou dar uma pesquisada maior sobre isso... essa questão de metadata é bem interessante, procurando no google existe bastante material sobre isso.
http://pastie.org/1505699
/**
* Verifica se a entidade em questão possui um Id. Método utilizado para escolher
* se a o esquema de persistência deve salvar ou atualizar o modelo
* @param entity A entidade a ser verificada
* @returntrue
se a entidade possui Id
* @throws Exception Caso algo de errado, uma exceção será lançada
*/
public boolean hasId(Object entity) throws Exception{
Class clazz = entity.getClass();
for(Field f : clazz.getDeclaredFields()){
if(!f.isAccessible())
f.setAccessible(true);
if(f.isAnnotationPresent(Id.class)){
if(f.get(entity) != null){
log.info("ID found: "+f.get(entity));
return true;
}
}
}
return false;
}
Alguns links interessantes:
http://www.guj.com.br/articles/136
http://java.sun.com/products/jmi/
http://download.oracle.com/javase/1.4.2/docs/api/java/sql/DatabaseMetaData.html
http://download.oracle.com/javase/1.5.0/docs/api/java/lang/reflect/AnnotatedElement.html
http://download.oracle.com/javase/6/docs/api/java/lang/reflect/AccessibleObject.html
Vaaleu!
Adriano Schmidt
Nenhum comentário:
Postar um comentário