Saya mencoba menerapkan fungsionalitas filter Pencarian dan memuat jaringan di aplikasi spring boot data JPA
. Untuk membuat kueri dinamis saya menggunakan Querydsl
.
Saya mencari data menurut sFloor dan nBuildId.
Jika saya meneruskan sFloor, hanya nBuildId catatan yang cocok itu yang akan ditampilkan di kisi
Jika saya tidak memberikan nilai apa pun maka grid harus memuat semua nilai.
Saya mencoba seperti di bawah ini. Ketika saya meneruskan data, saya dapat memfilter data. Tetapi ketika saya tidak melewati rekor apa pun, saya mendapatkan null pointer exception
.
Pengontrol Ruangan
@GetMapping("/getUnclaimedRoomDetails")
public List<Tuple> populateUnclaimedRoomGridView(@RequestParam(value="nBuildId", required=false) Integer nBuildId,
@RequestParam(value="sFloor", required=false) String sFloor) {
return roomService.loadUnclamiedRoomGrid(nBuildId,sFloor);
}
Layanan Kamar
public List<Tuple> loadUnclamiedRoomGrid(Integer nBuildId, String sFloor) {
QRoom room = QRoom.room;
QRoomDepartmentMapping roomDepartmentMapping = QRoomDepartmentMapping.roomDepartmentMapping;
JPAQuery<Tuple> query = new JPAQuery<Tuple>(em);
query.from(room)
.where(room.nRoomId.notIn
(JPAExpressions.select(roomDepartmentMapping.nRoomId)
.from(roomDepartmentMapping)
)
);
if (nBuildId != 0) {
query.where(room.nBuildId.eq(nBuildId));
}
if(sFloor != null) {
query.where(room.sFloor.eq(sFloor));
}
return query.fetch();
}
Adakah yang bisa memberi tahu saya mengapa saya mendapatkan pengecualian penunjuk nol alih-alih semua data?