我有一个EntityQuery - addressList
由Seam-gen为实体Address
生成。
假设该地址包含以下字段:streetName
和city
,因此Seam-gen会为其生成限制。
我想扩展我的EntityQuery,但有以下限制:
我有一个字段'keyVal',可以在#{addressList.keyVal}
的面上下文中设置。
让我们假设keyVal
是aaa bbb ccc
。现在查询应该添加限制,用于查找所有实体:
streetName like '%aaa%' or streetName like '%bbb%' or streetName like '%ccc%'
or city like '%aaa%' or city like '%bbb%' or city like '%ccc%'
您对如何实现这一点有什么建议吗?我真的被困了。
答案 0 :(得分:0)
问题是EntityQuery不支持对限制的多个值绑定。看到 https://issues.jboss.org/browse/JBSEAM-1065
您有时可以通过创造性地使用您的标准类来解决此问题。
您有时可以查看修改查询。例如,如果我有一个staffName输入,我需要查询员工的第一个名字,如输入或员工姓氏,如输入,我可以这样写我的查询:
private static final String[] RESTRICTIONS = {
"lower(concat(s.firstName, concat(' ', s.lastName))) like concat('%',
concat(lower(#{criteria.staffName}), '%'))"};
希望这会给你一些想法。