Querydsl:如何选择特定列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Querydsl:如何选择特定列相关的知识,希望对你有一定的参考价值。
我正在使用spring data jpa来创建服务。使用Querydsl
我从多个表中获取记录。我在模型类中使用了映射。 RoomDepartmentMapping
模型类与department
和room
映射。和room
用building
映射。
我想从building name
中只选择building
。
谁能告诉我怎么办?
QueryDSL
query.select(Projections.bean(RoomDepartmentMapping.class,roomDepartmentMapping.nRoomAllocationId,roomDepartmentMapping.sStatus,
Projections.bean(Department.class,department.nDeptId,department.sClientDeptId,department.sDeptName).as("department"),
Projections.bean(Room.class,room.nRoomId,room.sFloor,room.sRoomNumber,room.nBuildId,room.nCampusId,room.building).as("room")))
.from(roomDepartmentMapping);
结果
[
{
"nRoomAllocationId": 1,
"sStatus": "A",
"department": {
"nDeptId": 21920,
"sDeptName": "Unassignable Space",
"sClientDeptId": "BBBBBB"
},
"room": {
"nRoomId": 883886,
"nCampusId": 231,
"nBuildId": 9713,
"sFloor": "9",
"sRoomNumber": "914",
"building": {
"nBuildingId": 9713,
"sBuildName": "Bronk Laboratory",
"sClientBuildId": "406",
"nBuildingInstId": 60,
"nTempBuildingId": 2,
"nNoOfFloors": 0
},
"nroomId": 883886
}
},
...
...
]
答案
QueryDsl似乎没有提供自定义要显示的字段的方法,选择是使用jackson的@JsonProperty(serialized = false),它将隐藏您不希望在json字符串中显示的属性。
以上是关于Querydsl:如何选择特定列的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 QueryDSL 在查询中使用 SAMPLE 关键字