相关疑难解决方法(0)

在抽象的JPA DAO中抽象命名查询

我有一个抽象的DAO类,它使用参数化类型E(实体)和K(主键).在每个实体我都有@NamedQuery.我想在不知道其确切名称和参数名称的情况下动态调用此命名查询.

例如,想象下面的实体 City

@Entity(name="CITY")
@NamedQuery(
    name="findCityByname",
    query="FROM CITY c WHERE name = :CityName"
)
public class City { 
    // ...
}
Run Code Online (Sandbox Code Playgroud)

还有这个 CityDao

public class CityDao extends AbstractDao<City, Long> {
    public CityDao() {
        super(City.class);
    }   
}
Run Code Online (Sandbox Code Playgroud)

我应该如何实现该findByName()方法,AbstractDao以便我不需要知道确切的名称和参数名称?

public abstract class AbstractDao<E, K> implements Dao<E, K> {

    @PersistenceContext
    protected EntityManager entityManager;
    protected Class<E> entityClass;

    protected AbstractDao(Class<E> entityClass) {
        this.entityClass = entityClass; 
    }

    @Override
    public E findByName(String name) {
        try {
            return …
Run Code Online (Sandbox Code Playgroud)

java hibernate jpa jpa-2.0

10
推荐指数
1
解决办法
1万
查看次数

标签 统计

hibernate ×1

java ×1

jpa ×1

jpa-2.0 ×1