จะเขียนเงื่อนไข LIKE สำหรับ UUID โดย Querydsl เพื่อค้นหาค่าที่ตรงกับคำนำหน้าได้อย่างไร [ปิด]

ฉันต้องเขียนโค้ดโดยใช้ Querydsl สำหรับ https://stackoverflow.com/a/46494463/7750228 นี้

ทำอย่างไร?


person Bulat Usmanov    schedule 19.07.2019    source แหล่งที่มา


คำตอบ (1)


เนื่องจากนี่คือ Postgres คุณจึงต้องใช้ฟังก์ชัน cast() เพื่อดำเนินการนี้ เนื่องจากเครื่องมือตรวจสอบ JPQL ไม่รู้จักการแคสต์ประเภทนี้ คุณมีทางเลือก:

  • เขียนคำค้นหาดั้งเดิม
  • ใช้ฟังก์ชัน cast(expression as datatype) แทนการส่งแบบนี้ ::datatype

ผลลัพธ์จะมีลักษณะดังนี้:

SELECT u FROM User u
WHERE cast(id as text) LIKE CONCAT(:prefix,'%')
person Alan Sereb    schedule 19.07.2019