我想编写一个GORM查询,该查询可以列出具有相同姓名的所有员工的ID
数据库格式为:
|id|Department|EMPLOYEE| DATE |
|01| D01 | A |Date01|
|02| D03 | B |Date03|
|03| D02 | B |Date04|
|04| D04 | C |Date05|
|05| D05 | A |Date03|
|06| D01 | B |Date02|
|07| D02 | A |Date04|
|08| D04 | A |Date05|
|09| D04 | C |Date01|
|10| D05 | A |Date02|
结果应该像
|EMPLOYEE| id |
| A | 01,05,07,08,10 |
| B | 02,03,06 |
| C | 04,09 |
最佳答案
id
列是一个集合,因此最好调用该ids
。
对于您的同事来说,用sql处理一行内的行不是很容易,如果您必须加载大量数据并且可能会遇到性能问题,我只会使用它。
因此,我建议在您的Java代码中使用一个简单的findAllByEmployee
查询和group by Employee
。
如果由于对象脱水而希望节省一些带宽和cpu,则可以使用criteria仅加载所需的属性:
def result = Empoloyee.createCriteria().list{
projections {
property 'id'
property 'EMPOLYEE'
}
// Paging if needed
}
def empolyeeToIdsMap = result.groupBy {it.EMPLOYEE}
免责声明:
没有尝试过代码,可能包含错误。
关于sql - 我如何获取同名员工的所有ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56806336/