0

我有一个 EntityQuery -addressList由 Seam-gen 为 Entity 生成Address

假设地址有以下字段 :streetNamecity,所以 Seam-gen 会为它们生成限制。

我想用以下限制扩展我的 EntityQuery:我有一个字段 'keyVal' 可以在 faces 上下文中设置#{addressList.keyVal}。假设keyValaaa 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%'

您对如何实现这一目标有任何建议吗?我真的被困住了。

4

1 回答 1

0

问题是 EntityQuery 不支持限制上的多个值绑定。见 https://issues.jboss.org/browse/JBSEAM-1065

您有时可以通过创造性地使用您的标准类来解决这个问题。

您有时可以查看修改查询。例如,如果我有一个单一的员工姓名输入,并且我需要查询像输入一样的员工名字或像输入一样的员工姓氏,我可以这样编写查询:

private static final String[] RESTRICTIONS = {
    "lower(concat(s.firstName, concat(' ', s.lastName))) like concat('%', 
               concat(lower(#{criteria.staffName}), '%'))"};

希望这能给你一些想法。

于 2011-01-24T20:16:12.920 回答