2009-09-04 3 views
10

Tôi có ứng dụng GWT thực hiện cuộc gọi RPC tới máy chủ để lưu/tạo một thực thể mới. Tuy nhiên, back-end Spring-Hibernate ném một ngoại lệ với thông báo lỗi sau:cố gắng tạo sự kiện saveOrUpdate với thực thể null

attempt to create saveOrUpdate event with null entity 

Tôi không chắc điều đó có nghĩa là gì. Có gì rỗng? Nếu đó là một thực thể mới mà tôi đang tiết kiệm, tôi hy vọng sẽ có trường idnull hoặc có thể là 0 và sau đó đã điền vào nó. Kỳ vọng này có đúng không?

+0

Chúng tôi có thể thấy tệp ánh xạ và thực thể của bạn không? – Zoidberg

+0

Zoidberg, Dường như không phải là tệp ánh xạ đối với vấn đề thực thể. Nó def dường như là một vấn đề serialization như Andre mang đến dưới đây. Vì vậy, trong GWT tôi bắt đầu một dịch vụ RPC trong lớp A dựa trên hỗn hợp, sau đó trong một cửa sổ phụ khác (nghĩ bật lên) tôi bắt đầu lại lớp dịch vụ RPC. Tôi lớp phụ cửa sổ tôi có thể nhận được tất cả các thực thể loại A tốt nhưng không có cập nhật, lưu, hoặc xóa là thành công. – Rafael

Trả lời

15

null entity có nghĩa là saveOrUpdate() là thực sự nhận null như một tham số, ví dụ:

session.saveOrUpdate(null); 

Nếu bạn đang sử dụng serialization để vượt qua để phản đối một địa điểm từ xa (bạn đề cập đến RPC), có lẽ bạn nên kiểm tra nếu serialization đang hoạt động chính xác. Một cái gì đó nói với tôi rằng không serialize có thể kết thúc với một tham chiếu null được thông qua.

+0

Andre, Cả thực thể phía sau và thực thể GWT Thực thể được sắp xếp theo thứ tự. Nhân tiện, tôi có thể tạo/lưu thành công đối tượng nếu tôi chạy trong dự án Eclipse thông qua Spring bean. Nhưng khi tôi chạy cùng một mã từ chế độ lưu trữ GWT, tôi nhận được ngoại lệ được ném. Tôi cũng có thể tạo/lưu các thực thể khác tốt. kỳ dị. – Rafael

+0

Vì vậy, bạn có nghĩa là lỗi này xảy ra chỉ với thực thể cụ thể này? saveOrUpdate() trên những người khác hoạt động tốt? –

+0

Yup. Tôi bắt đầu nghĩ rằng đó là một vấn đề proxy rpc. Xem, tôi có Widget A, nơi tôi bắt đầu một dịch vụ RPC. Trong widget A, tôi khởi tạo một widget khác, widget B. Khi tôi chuyển đến widget B, dịch vụ RPc từ widget A. – Rafael