gpt4 book ai didi

java - Jpa 标准表别名

转载 作者:行者123 更新时间:2023-11-30 04:14:18 26 4
gpt4 key购买 nike

嗨,我正在努力使用条件 api 编写以下查询:“从 cargo c 中选择 c.id,curr.name,货币 curr”

问题在于,根据条件, cargo 和货币都被别名为 c,因此生成的 jpql 变为“SELECT c.id,c.name FROM Cargo c,Currency c”。

我不知道是不是因为两个实体都以C开头。有没有办法更改表别名?

CriteriaBuilder criteriaBuilder = getEntityManager().getCriteriaBuilder();
CriteriaQuery<Tuple> query= criteriaBuilder.createTupleQuery();

Root<Cargo> cargo= query.from(Cargo.class);
Root<Currency> currency= query.from(Currency.class);

非常感谢任何帮助。

最佳答案

您的代码缺少您指定要选择的内容的部分。 “从 cargo c 中选择 c.id,curr.name,货币 curr”可能会翻译成这样:

CriteriaBuilder criteriaBuilder = getEntityManager().getCriteriaBuilder();
CriteriaQuery<Tuple> query= criteriaBuilder.createTupleQuery();

Root<Cargo> cargo= query.from(Cargo.class);
Root<Currency> currency= query.from(Currency.class);

query.multiselect(cargo.get("id"), currency.get("name"));
Query query = em.createQuery(cq);
List<Tuple> results = query.getResultList();

这里有一个仅使用一张表的示例: http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/Criteria#Tuple_Queries

关于java - Jpa 标准表别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18785676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com