Olá, estou gerando um create table com reflection, porém gostaria de atráves das annotations definir qual FIELD é a PK.Tenho um código mais creio que algo está faltando ou está incorreto, se alguem puder dar uma ajuda.
for (int i = 0, pks = 0; i < fields.length; i++) {
Field f = fields[i];
if (f.isAnnotationPresent(Column.class)) {
Column annotationColumn = f.getAnnotation(Column.class);
int valueAt = annotationColumn.pk();
if (valueAt == 1) {
if (pks > 0) {
sb.append(",");
sb.append(" " + "PRIMARY KEY");
}
pks++;
}
}
}
sb.append("\n);");
return sb.toString();
}
Annotation
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface Column {
int pk() default 0;
}
E na classe instanciada.
@Column(pk = 1)
int id;
Como sou novo com reflection, gostaria de saber o que tem de errado.