Mặc dù thực tế rằng truy vấn JDO của tôi chứa HAIdeclareParameters
báo cáo, mã dưới đây tạo ra một lỗi khi xác nhận chỉ có một tham số được chấp nhận:Ngoại lệ JDO: "Truy vấn yêu cầu 1 thông số, nhưng 2 giá trị đã được cung cấp".
Query đòi hỏi 1 thông số, tuy nhiên 2 giá trị đã được cung cấp.
Hai thông số amountP
và taxP
:
javax.jdo.Query query= pm.newQuery(Main.class);
query.setFilter("amount == amountP && tax < taxP");
query.declareParameters("int amountP");
query.declareParameters("int taxP");
List<Main> results = (List<Main>)query.execute (amountP, taxP);
Tuy nhiên, với những thay đổi sau, nó hoạt động.
javax.jdo.Query query= pm.newQuery(Main.class);
query.setFilter("amount == amountP && tax < taxP");
query.declareParameters("int amountP, int taxP");
List<Main> results = (List<Main>)query.execute (amountP, taxP);
Câu hỏi của tôi là: Có chuyện gì với cú pháp ban đầu?
Cập nhật: This problem has been reported by others nhưng không giải thích.
+1 Vì hành vi dường như ngụ ý rằng tuyên bố của bạn là chính xác. Có lẽ downvoter muốn giải thích lý do tại sao anh/cô ấy downvoted? – jmort253