Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA查询语言标准生成器_Java_Jpa_Glassfish_Ejb_Jpa 2.0 - Fatal编程技术网

Java JPA查询语言标准生成器

Java JPA查询语言标准生成器,java,jpa,glassfish,ejb,jpa-2.0,Java,Jpa,Glassfish,Ejb,Jpa 2.0,我已经在EJB容器中使用JPA构建了一个应用程序。 这是我的密码 @PersistenceContext(unitName = "damate-pu") private EntityManager em; @Override public Workspace find(String username, String path) { CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder(); CriteriaQuery

我已经在EJB容器中使用JPA构建了一个应用程序。 这是我的密码

@PersistenceContext(unitName = "damate-pu")
private EntityManager   em;

@Override
public Workspace find(String username, String path) {
    CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder();
    CriteriaQuery<Workspace> criteriaQuery = criteriaBuilder.createQuery(Workspace.class);
    Root<Workspace> from = criteriaQuery.from(Workspace.class);
    Predicate condition = criteriaBuilder.equal(from.get("Username"), username);
    Predicate condition2 = criteriaBuilder.equal(from.get("Path"), path);
    Predicate condition3 = criteriaBuilder.and(condition, condition2);
    criteriaQuery.where(condition3);
    Query query = em.createQuery(criteriaQuery);

    return (Workspace) query.getSingleResult();
}

你试过使用元模型吗

CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder();
Metamodel m = em.getMetamodel();
EntityType<Workspace> WS = m.entity(Workspace.class);
CriteriaQuery<Workspace> criteriaQuery = criteriaBuilder.createQuery(Workspace.class);
Root<Workspace> from = criteriaQuery.from(Workspace.class);
Predicate condition = criteriaBuilder.equal(from.get(WS.username), username);
CriteriaBuilder-CriteriaBuilder=em.getCriteriaBuilder();
元模型m=em.getMetamodel();
EntityType WS=m.entity(Workspace.class);
CriteriaQuery CriteriaQuery=criteriaBuilder.createQuery(Workspace.class);
Root-from=criteriaQuery.from(Workspace.class);
谓词条件=criteriaBuilder.equal(from.get(WS.username),username);

在构建条件查询(或在字符串中构建jpql)时,您希望使用实体属性名称,而不是列名。您的数据库列名为“Username”,但工作区对象的属性为“Username”,不带大写字母U。

CriteriaBuilder-CriteriaBuilder=entityManager.getCriteriaBuilder();
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
        CriteriaQuery<> criteriaQuery = criteriaBuilder
                .createQuery(Date.class);
        Root<test> root = criteriaQuery.from(test.class);

        criteriaQuery.select(criteriaBuilder.greatest(root
                .<Date> get("Starttime")));
        criteriaQuery.where(
                criteriaBuilder.equal(root.get("columnName 1"), filtervalue),
                criteriaBuilder.equal(root.get("columnName 2"), Filtervalue));

        TypedQuery<Date> query = entityManager.createQuery(criteriaQuery);
        Date date = query.getSingleResult();
CriteriaQuery CriteriaQuery=criteriaBuilder .createQuery(Date.class); Root=criteriaQuery.from(test.class); criteriaQuery.select(criteriaBuilder.magest(root .get(“Starttime”); criteriaQuery.where( criteriaBuilder.equal(root.get(“columnName 1”)、filtervalue), equal(root.get(“columnName 2”),Filtervalue); TypedQuery=entityManager.createQuery(criteriaQuery); 日期=query.getSingleResult();
我无法从WS获取用户名。为什么?抱歉,错过了正确的元模型文档页面
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
        CriteriaQuery<> criteriaQuery = criteriaBuilder
                .createQuery(Date.class);
        Root<test> root = criteriaQuery.from(test.class);

        criteriaQuery.select(criteriaBuilder.greatest(root
                .<Date> get("Starttime")));
        criteriaQuery.where(
                criteriaBuilder.equal(root.get("columnName 1"), filtervalue),
                criteriaBuilder.equal(root.get("columnName 2"), Filtervalue));

        TypedQuery<Date> query = entityManager.createQuery(criteriaQuery);
        Date date = query.getSingleResult();