EntityManager.java 文件源码

java
阅读 44 收藏 0 点赞 0 评论 0

项目:financisto1-holo 作者:
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();
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号