【问题标题】:Grails findBy is not working with combination of Or/And ConditionGrails findBy 不适用于 Or/And 条件的组合
【发布时间】:2016-04-11 05:27:03
【问题描述】:

我正在使用 Grails 应用程序。我正在为我的 grails 应用程序使用 Apache Shiro 安全插件。我试图在我的 User 域类上使用 findBy 查询,并带有 OrAnd 条件,但它给了我一个错误。

我的领域类

class ShiroUser {
      String firstName
      String lastName
      String username
      String email
      String passwordHash
      String userStatus

      static hasMany = [ roles: ShiroRole, permissions: String ]

      static constraints = {
          username(nullable: false, blank: false, unique: true)
          email(nullable: false, blank: false, email: true,unique: true)
     }}

我已经执行了以下查询:

ShiroUser.findByUsernameOrEmailAndUserStatus(params?.username,params?.username,'Active')

我收到以下错误:

Message: No property found for name [usernameOrEmail] for class [class com.chatportal.ShiroUser]

但是如果我只使用 Or 条件执行查询,那么它可以正常工作。

ShiroUser.findByUsernameOrEmail(params?.username,params?.username)

当我使用 OrAnd 条件和 findBy 时,任何人请帮我看看我的条件有什么问题?

【问题讨论】:

    标签: grails grails-orm grails-2.0 shiro grails-domain-class


    【解决方案1】:

    【讨论】:

    • 感谢您的建议。我知道标准或 HQL 查询,但我想通过 findBy******** 来实现它
    • 这不是一个建议,它是一个指向文档的链接,告诉你你不能用动态查找器做你想做的事。最初,您只能有一个或两个属性,一个And 或一个Or。取消该限制后,决定您只能使用所有And 或所有Or,因为无法分组或使用括号。如果您需要更复杂的查询,请使用不同的查询方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-28
    • 2019-01-06
    • 2014-11-23
    • 2018-06-03
    • 1970-01-01
    相关资源
    最近更新 更多