- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为我的Grails应用程序编写查询,该查询选择与Apple
实例“相关”的Orange
的所有实例。这里的“相关”一词意味着与Banana
实例相关联的所有Apple
实例与与我们所关注的Cherry
实例相关联的Orange
实例的某种组合相关联。我已经看过问题here,但是我的查询有点复杂,而且我没有看到如何将给定的答案应用于我的问题。
这是我要处理的类:
class Apple {
static hasMany = [ bananas: Banana ]
}
class Banana {
}
class Cherry {
static hasMany = [ bananas: Bannna ]
}
class Orange {
static hasMany = [ cherries: Cherry ]
}
Banana
的所有实例均与“Orange 1”无关。
Banana
实例都通过“Cherry”实例的某些组合与“Orange 1”相关”。
Apple.executeQuery(
"SELECT DISTINCT apples
FROM Apple apples
INNER JOIN apples.banannas banannas
WHERE banannas IN(
SELECT DISTINCT banannas
FROM Cherry cherries
INNER JOIN cherries.banannas banannas
WHERE cherries IN(
SELECT DISTINCT cherries
FROM Orange orange
INNER JOIN orange.cherries cherries
WHERE orange =:myOrange
)
)
ORDER BY apples.id ASC",
myOrange: myOrange
)
SELECT DISTINCT apple0_.id AS id10_,
apple0_.version AS version10_,
apple0_.description AS descript3_10_,
apple0_.apple_priority_type_id AS apple4_10_,
apple0_.apple_status_type_id AS apple5_10_,
apple0_.internal_need_date AS internal6_10_,
apple0_.name AS name10_
FROM apple apple0_
INNER JOIN apple_priority_type applepri1_
ON apple0_.apple_priority_type_id = applepri1_.id
INNER JOIN apple_status_type applesta2_
ON apple0_.apple_status_type_id = applesta2_.id
INNER JOIN apple_banana banana3_
ON apple0_.id = banana3_.apple_bananas_id
INNER JOIN banana banana4_
ON banana3_.banana_id = banana4_.id
WHERE banana4_.id IN (SELECT DISTINCT banana7_.id
FROM cherry plum5_
INNER JOIN cherry_banana banana6_
ON plum5_.id = banana6_.cherry_bananas_id
INNER JOIN banana banana7_
ON banana6_.banana_id = banana7_.id
WHERE plum5_.id IN (SELECT DISTINCT plum10_.id
FROM orange orange8_
INNER JOIN orange_cherry
plum9_
ON
orange8_.id = plum9_.orange_cherrys_id
INNER JOIN cherry plum10_
ON
plum9_.cherry_id = plum10_.id
WHERE orange8_.id = 248))
ORDER BY apple0_.id ASC
LIMIT 100
def bananas= myOrange.cherries.bananas.flatten().unique()
def apples = Apple.getAll().collectMany{ !it.bananas.isEmpty() && bananas.containsAll( it.bananas ) ? [ it ] : [] }.flatten().unique()
namedParams.put( "apples", apples )
if( !apples.isEmpty() ) {
apples = Apple.executeQuery( "SELECT DISTINCT apples FROM Apple apples WHERE apples IN(:apples) ${additionalQuery} ORDER BY ${sortname} ${sortorder}", namedParams )
}
return apples
最佳答案
这是因为,如果您的Apple与香蕉至少有一种联系,它将永远回来。
select
distinct apple0_.id as id0_,
apple0_.version as version0_
from
apple apple0_
inner join
apple_banana bananas1_
where bananas1_.banana_id in (1,2,3)
SELECT DISTINCT apples
FROM Apple apples
INNER JOIN apples.bananas bananas
WHERE bananas IN(
SELECT DISTINCT bananas
FROM Cherry cherries
INNER JOIN cherries.bananas bananas
WHERE cherries IN(
SELECT DISTINCT cherries
FROM Orange orange
INNER JOIN orange.cherries cherries
WHERE orange =:myOrange
)
)
and apples not in (
SELECT DISTINCT apples
FROM Apple apples
INNER JOIN apples.bananas bananas
WHERE bananas NOT IN(
SELECT DISTINCT bananas
FROM Cherry cherries
INNER JOIN cherries.bananas bananas
WHERE cherries IN(
SELECT DISTINCT cherries
FROM Orange orange
INNER JOIN orange.cherries cherries
WHERE orange = :myOrange
)
)
)
关于grails - 确定列表是否是另一个列表HQL的子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13708150/
我有实体和 NamedQuery: @Entity @Table(name="MY_TABLE") @NamedQueries({ @NamedQuery(name="myQuery", quer
hql 中的 row_number() 与分区的等价物是什么 我在 hql 中有以下查询: select s.Companyname, p.Productname, sum(od.Unitprice
hql 函数 current_timestamp() 使用的是来自运行 java 代码的服务器的时间还是来自运行数据库的服务器的时间? 最佳答案 HQL 查询被翻译成 SQL 查询,SQL 查询由数据
我有一个 Hibernate HQL 问题。 我想将子查询编写为派生表(出于性能原因)。 可以在 HQL 中做到这一点吗? 例子: FROM Customer WHERE country.id in
我有三个表 A B 和 C。现在我想在 HQL 中执行这个 sql 查询: select * from A as a left join B as b on a.id = b.id left join
我是 Hive 的新手,想知道如何直接从 .hql 文件执行 hive 命令。 最佳答案 如 @rajshukla4696 所述,hive -f filename.hql 或 beeline -f f
出于各种原因,我正在尝试编写一个部分动态的 HQL 查询,而不求助于 Criteria API。我想知道是否有一种简单的方法可以使用 HQL 表达式来短路 where 限制。例如,这是工作正常的原始查
我正在自学 hibernate ,并且很困惑为什么我不能只编写简单的 SQL 查询。 我发现它比普通 SQL(我习惯的)使用起来更困惑 PLUS:我发现 NetBeans HQL 编辑器非常烦人,对我
非常感谢您帮助将以下 SQL 语句转换为有效的 HQL 语句。我尝试了几个小时但没有成功: SELECT * FROM master as m left outer join (select * fr
我有一个 HQL 查询: query = select item.itemNumber from items item where item.stock>0 and item.price it = q
我在以下代码段中遇到错误 using (var session = Database.OpenSession()) { var q = from x in session.Query()
我正在使用以下 C# 代码: public IList GetAllByExpression(Expression> expression, int startIndex, int count, Fu
我有 HQL,我试图在其中获取没有分类的工件(当 Activity 为 0 时) artifacts = Artifact.findAll("FROM Artifact WHERE id NOT IN
在 JPQL 中,我可以通过以下方式检索实体: query = entityManager.createQuery("select c from Category c"); List categori
我正在尝试使用 HQL 查询更新记录,但我收到了 CastException。如果有人可以帮助我,我将不胜感激。我已经在网上查了一段时间,但我找不到这方面的任何信息。如果您有关于此异常的更多信息,请告
我正在尝试在 JPA 中执行一个 select 语句,这会抛出上述错误。代码是: TypedQuery typedQuery = null; String query = ""; List list
我有问题要执行一个更新 HQL 查询。 我想编辑保存在配置文件实体中的值,但没有运气。 我的实体如下所示 @Entity @Table(name = "users", catalog = "testd
如何设置此 hql 查询的限制?当我在查询中添加 limit 关键字时,会引发错误。 @Query("from voucher v where v.voucherType.typeDescript
假设有两个表,A[a_id, b_id]和 B[b_id,c] . 我需要执行表单 "From A a ORDER BY a.b.c" 的 HQL 查询, 而 b在类 A 中可以为空. 但是,该查询仅
是否可以在 HQL 中运行与此类似的查询而无需指定所有列名。 select med, MAX(med.PrescriptionLines.Prescription.PrescriptionDate)
我是一名优秀的程序员,十分优秀!