我有一个由Seam-gen为实体Address生成的EntityQuery - addressList。
假设address有以下字段:streetName和city,因此Seam-gen会为它们生成限制。
我想用以下限制来扩展我的EntityQuery :我有一个字段'keyVal‘,可以用#{addressList.keyVal}在faces上下文中设置它。让我们假设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%'你有什么建议可以做到这一点吗?我真的被困住了。
发布于 2011-01-25 04:16:13
问题是EntityQuery不支持多个值绑定的限制。请参阅https://issues.jboss.org/browse/JBSEAM-1065
有时你可以通过创造性地使用你的criteria类来解决这个问题。
您有时可以考虑修改查询。例如,如果我有一个staffName输入,并且我需要查询像输入这样的员工名字或像输入这样的员工姓氏的位置,我可以这样写我的查询:
private static final String[] RESTRICTIONS = {
"lower(concat(s.firstName, concat(' ', s.lastName))) like concat('%',
concat(lower(#{criteria.staffName}), '%'))"};希望这能给你一些启发。
https://stackoverflow.com/questions/4782251
复制相似问题