Я работаю с приложением Grails. Я использую плагин безопасности Apache Shiro для моего приложения grails. Я пытаюсь использовать findBy
запрос на мой класс User
с Или и И Состояние, но оно дает мне ошибку.Grails findBy не работает с комбинацией Or/And Condition
Мой домен Класс
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]
Но если я выполнить запрос только с Или conditio n, тогда он отлично работает.
ShiroUser.findByUsernameOrEmail(params?.username,params?.username)
Любой, пожалуйста, помогите мне, что случилось с моим состоянием, когда я использовал Или и И состояние с findBy?
Благодарим за предложение. Я знаю критерии или запрос HQL, но я хочу достичь этого путем findBy ******** –
Это было не предложение, это была ссылка на документы, показывающие, что вы не можете делать то, что хотите, с помощью динамических искателей , Первоначально у вас может быть только один или два атрибута с одним и тем же или одним. Когда это ограничение было удалено, было решено, что вы можете использовать все 'And' или все' Or', потому что нет возможности группировать или использовать круглые скобки. Если вам нужны более сложные запросы, используйте другой подход к запросу. –