Querydsl:如何选择特定列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Querydsl:如何选择特定列相关的知识,希望对你有一定的参考价值。

我正在使用spring data jpa来创建服务。使用Querydsl我从多个表中获取记录。我在模型类中使用了映射。 RoomDepartmentMapping模型类与departmentroom映射。和roombuilding映射。

我想从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 关键字

使用 sqlalchemy 时如何选择特定列?

如何在laravel中选择特定列

如何从选择中搜索/过滤特定的 DataTables 列

如何在文本区域标签中的特定光标位置插入选择标签下拉值作为文本片段?

MySQL选择特定列