小编Ale*_*uta的帖子

如何使用QueryDSL构建GenericDao?

首先,我是QueryDSL的新手.

我正在使用Spring + Hibernate环境.

我面临的问题是构建GenericDAO来实现所有基本的CRUD操作,但我不知道如何从QEntity获取静态引用.

我的实体类结构如下所示:

    @Entity //jpa
    public class Entity extends AbstractEntity{
    //fields
    ...
    }

    public abstract class AbstractEntity{
    //Logger 
    }
Run Code Online (Sandbox Code Playgroud)

QueryDSL生成的实体的基本结构

    public class QEntity extends PEntity<Entity>{
    ...
    public static final QEntity entity = new QEntity("entity");        
    ...
    //constructors

    } 
Run Code Online (Sandbox Code Playgroud)

GenericDao看起来像这样:

    public class abstract GenericDao<T extends AbstractEntity, K extends PEntity<? extends AbstractEntity>>{

    //some kind of method to get the K.k (QEntity.entity) reference.        
    //CRUD operations using T and K

    }
Run Code Online (Sandbox Code Playgroud)

一种方法是使用Reflection,但我不是使用该方法的倡导者,尤其是在这种情况下.

另一件我不确定的事情是,是否必须使用QEntity中的静态引用来构建查询,或者如果我进行构造函数调用以获取新对象,则可以.另外,构造函数参数中的String表示什么?

    public QEntity(String variable) {
    this(Entity.class, forVariable(variable), INITS);
    }
Run Code Online (Sandbox Code Playgroud)

java generics dao jpa querydsl

8
推荐指数
1
解决办法
2907
查看次数

标签 统计

dao ×1

generics ×1

java ×1

jpa ×1

querydsl ×1