Querydsl: Как выбрать конкретный столбец - PullRequest
0 голосов
/ 01 ноября 2018

Я использую 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
    }
  },
...
...
]

1 Ответ

0 голосов
/ 01 ноября 2018

QueryDsl, похоже, не предоставляет способ настройки полей, которые вы хотите отображать, выбор - использовать @JsonProperty Джексона (serialized = false), он будет скрывать свойство, которое вы не хотите отображать в строке json.

...