相关疑难解决方法(0)

Spring JPA选择特定列

我正在使用Spring JPA来执行所有数据库操作.但是我不知道如何从Spring JPA中的表中选择特定的列?

例如:
SELECT projectId, projectName FROM projects

java jpa spring-data-jpa

119
推荐指数
9
解决办法
21万
查看次数

使用EntityManager从EJB访问Hibernate会话

是否可以从EntityManager获取Hibernate Session对象?我想访问一些特定于hibernate的API ...

我已经尝试过类似的东西:

org.hibernate.Session hSession =
   ( (EntityManagerImpl) em.getDelegate() ).getSession();
Run Code Online (Sandbox Code Playgroud)

但是只要我在EJB中调用一个方法,我就会得到"在EJB上调用期间发生系统异常",并带有NullPointerException

我使用glassfish 3.0.1

java hibernate jpa java-ee glassfish-3

18
推荐指数
4
解决办法
2万
查看次数

JPA,实体管理器,选择许多列并获取结果列表自定义对象

我如何获得自定义对象列表,如查询下面的结果:

SELECT p.category.id, count(p.id) FROM Product p left join p.category c WHERE p.seller.id=:id GROUP BY c.id
Run Code Online (Sandbox Code Playgroud)

举例:

return getEntityManager().createQuery("SELECT p.category.id, count(p.id) FROM Product p left join p.category c WHERE p.seller.id=:id GROUP BY c.id").setParameter("id", id).getResultList();
Run Code Online (Sandbox Code Playgroud)

我需要一张类别ID和类别中的产品数量的地图.

java hibernate jpa entitymanager jpa-2.0

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

如何使用 JPA Criteria API 搜索字符串的日期字段

这是一个从我这里的另一个问题衍生出来的问题。我认为最好在有人(@Franck)指出这个链接这个链接之后提出一个不同的问题。

我对如何使用 JPA Criteria API 在数据库日期列(在我的例子中是 MySQL DATETIME)中搜索字符串感到困惑

这是我所做的;

CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Client> cq = cb.createQuery(Client.class);
Root<Client> entity = cq.from(Client.class);
cq.select(entity);

List<Predicate> predicates = new ArrayList<Predicate>();
predicates.add(cb.like(cb.lower(entity.get("dateJoined").as(String.class)), "%"+search.toLowerCase()+"%")); 

cq.where(predicates.toArray(new Predicate[]{}));
TypedQuery<Client> query = em.createQuery(cq); //<--- Error gets thrown here
return query.getResultList();
Run Code Online (Sandbox Code Playgroud)

但它失败了,但有以下例外;

java.lang.IllegalArgumentException: Parameter value [%10-2015%] did not
match expected type [java.lang.Character]
Run Code Online (Sandbox Code Playgroud)

10-2015正在搜索的字符串在哪里;

我被困在如何实现这一目标上。我需要帮助。

java mysql jpa

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

JpaSpecificationExecutor:具有规范的复杂查询

我实际上是在使用不同的过滤器进行研究。

当我使用JpaRepository进行简单查询时,我发现JpaSpecificationExecutor可以使用Criterias进行动态查询。

我的问题是我需要使用group by和count()创建一个复杂的查询。分组依据是可以的,但是我找不到如何覆盖“选择”部分来放置“计数”指令的方法。

有人可以帮我吗?

我正在使用spring 3.1.2和spring-jpa-data 1.0.3这是我的代码:

return new Specification< Article >() {

    @Override
    public Predicate toPredicate(final Root<Article> root,
        final CriteriaQuery<?> query, final CriteriaBuilder builder) {
        //count ???
        query.groupBy(root.get(Article_.id));
        Predicate p = builder.and(builder.like(root.<String> get(Article_.title), "%" + title + "%"));

        return p;
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢 !

spring spring-data-jpa

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

有没有一种简单的方法可以使用标准查询来选择实体的 id?

JPQL 使这种更改非常容易:

Select o from Orders as o where....

Select o.id from Orders as o where....
Run Code Online (Sandbox Code Playgroud)

但在标准查询中:

CriteriaBuilder builder = kem.getCriteriaBuilder();
CriteriaQuery<Orders> query = builder.createQuery(Orders.class);
Root<Order> orders= query.from(Orders.class);
query.select(orders);
....
Run Code Online (Sandbox Code Playgroud)

看起来选择项是由 builder.createQuery(Order.class) 定义的,没有任何灵活性。

我知道我们可以使用 Tuple.class,但除了喜欢之外,还有什么更好的方法可以从复杂的查询中获得额外的 id(只有一个字段)?没有这样的特征标准查询变得非常缺乏灵活性。

ejb jpa jpql jakarta-ee

2
推荐指数
1
解决办法
7877
查看次数