2013-05-06 2 views
0

Итак, у меня есть метод, который проходит через моих пользователей и находит, где одинаковые идентификаторы. Затем он добавляет этих пользователей в массив. У меня есть он, поэтому он найдет всех пользователей с одинаковыми идентификаторами. Не нужно уточнять поиск, где идентификаторы одинаковы. И учетные записи действительны. (Если счета все остальное (деактивируется, аннулировано, тайм-аут, вн), то не его проблема, так что я не нужно искать их.Список и поиск

Это то, что работает

static List<Users> getAllWithDuplicateIDs() { 
    findAll('from User where id in (select id from User group by id having count(*) > 1)', []) 
} 

это то, что я 'м пытаясь

findAll('FROM User WHERE id IN (SELECT id FROM User group by id having count(*) > 1) AND accountStatus = 'valid' ', []) 

ошибка Im получение:.

User.groovy: 32: неожиданный маркер: действующий @ строка 32, столбец 122. (*)> 1) И accountStatus = 'действует'' , ^

Любая помощь/мнений/высоко оценили

Спасибо!

+0

Зачем? Используйте escape-символы для 'valid' как '\ 'valid \''. – dmahapatro

+2

findAll («FROM User WHERE id IN (SELECT id FROM) Группа пользователей по идентификатору, имеющему счетчик (*)> 1) И accountStatus = 'valid'", []) – maszter

+1

Исключением является жалоба на "valid", потому что вы запрашиваете строку string раньше, чем вы думали. Используйте escape-символ, т. Е. '\ 'Valid \'', чтобы увидеть, работает ли он. – Faraway

ответ

2

Замените одиночные кавычки двойными кавычками, иначе избегайте одиночных кавычек. оставить «действительным», как это, если заменить синглы на двойные. Yeclipse показывает, как

Смежные вопросы