private static EntityDefinition parseDefinition(Class<?> clazz) {
if (!clazz.isAnnotationPresent(Entity.class)) {
throw new IllegalArgumentException("Class "+clazz+" is not an @Entity");
}
EntityDefinition.Builder edb = new EntityDefinition.Builder(clazz);
try {
Constructor<?> constructor = clazz.getConstructor();
edb.withConstructor(constructor);
} catch (Exception e) {
throw new IllegalArgumentException("Entity must have an empty constructor");
}
if (clazz.isAnnotationPresent(Table.class)) {
Table tableAnnotation = clazz.getAnnotation(Table.class);
edb.withTable(tableAnnotation.name());
}
Field[] fields = clazz.getFields();
if (fields != null) {
int index = 0;
for (Field f : fields) {
if ((f.getModifiers() & Modifier.STATIC) == 0) {
if (f.isAnnotationPresent(Id.class)) {
edb.withIdField(parseField(f));
} else {
if (f.isAnnotationPresent(Transient.class)) {
continue;
} else if (f.isAnnotationPresent(JoinColumn.class)) {
JoinColumn c = f.getAnnotation(JoinColumn.class);
edb.withField(FieldInfo.entity(index++, f, c.name(), c.required()));
} else {
edb.withField(parseField(f));
}
}
}
}
}
return edb.create();
}
EntityManager.java 文件源码
java
阅读 44
收藏 0
点赞 0
评论 0
项目:financisto1-holo
作者:
评论列表
文章目录