【发布时间】:2014-02-15 06:27:44
【问题描述】:
首先,我对 QueryDSL 很陌生。
我使用的是 Spring + Hibernate 环境。
我面临的问题是构建一个 GenericDAO 来实现所有基本的 CRUD 操作,但我不确定如何从 QEntity 获取静态引用。
我的实体类结构如下:
@Entity //jpa
public class Entity extends AbstractEntity{
//fields
...
}
public abstract class AbstractEntity{
//Logger
}
QueryDSL 生成实体的基本结构
public class QEntity extends PEntity<Entity>{
...
public static final QEntity entity = new QEntity("entity");
...
//constructors
}
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
}
一种方法是使用反射,但我不提倡使用这种方法,尤其是在这种情况下。
我不确定的另一件事是,是否必须使用来自 QEntity 的静态引用来构建查询,或者如果我调用构造函数来获取新对象是否可以。还有,构造函数参数中的String是什么意思?
public QEntity(String variable) {
this(Entity.class, forVariable(variable), INITS);
}
【问题讨论】:
标签: java generics jpa dao querydsl