2012-05-11 15 views

Trả lời

6
where(e1.and(e2).or(e3.and(e4))) 
+0

Đúng là đây là công thức logic tương đương như trên, nhưng không giống nhau. Điều gì sẽ xảy ra nếu tôi muốn tạo một câu lệnh SQL bắt đầu bằng dấu ngoặc đơn, mặc dù nó tương đương về mặt logic với công thức mà không có chúng? – csviri

+0

Querydsl đảm bảo rằng các biểu thức được tuần tự hóa theo đúng cách để SQL, vì vậy bạn không cần phải lo lắng về việc paranthesis –

+2

"Tôi không cần phải lo lắng" có vẻ hơi phức tạp đối với tôi. Tôi không bao giờ biết nếu 'ở đâu (e1.or (e2). Và (e3))' có nghĩa là '(e1 hoặc e2) và e3)' hoặc 'e1 hoặc (e2 và e3)'. Tôi đã thực sự ngạc nhiên rằng 'ở đâu (e1.or (e2). Và (e3.or (e4)))' được tạo ra '(e1 hoặc e2) và (e3 hoặc e4) 'mà tôi thực sự muốn. Nhưng làm thế nào mà OR đầu tiên xảy ra trong ngoặc đơn? Dựa trên cái gì? Liệu '... và (e3.or (e4))' có tạo ra sự khác biệt nào cho '... và (e3) .or (e4)' sau đó? Chúng tôi thường xem xét các truy vấn của mình trong nhật ký, nhưng tôi muốn tìm một thứ cụ thể hơn về việc tuần tự hóa này. – virgo47

Các vấn đề liên quan