Tôi đã gặp sự cố sau, có vẻ như là một số prettycommon. Ngoại lệ là Cannot update entity: [...] nested exception is java.sql.BatchUpdateException: ORA-24816: Expanded non LONG bind data supplied after actual LONG or LOB column
. Có vẻ như Oracle không thích ràng buộc các giá trị lớn (> 4000 ký tự) vào các tham số sau một LOB hoặc CLOB. Có ai đã giải quyết vấn đề này không?Lỗi Oracle lạ với Hibernate và CLOBs
Trả lời
Đây là: ORA-24816
** Đó là giới hạn và các biến kết buộc LONG phải đến cuối cùng trong tuyên bố. **
nguồn: http://www.odi.ch/weblog/posting.php?posting=496
Giải pháp: Bằng cách đổi tên các trường trong mô hình hibernate để cột clob có một cái tên mà đến muộn hơn cột varchar2 khi đặt hàng theo thứ tự abc (tôi tiền tố lĩnh vực clob trong java class với 'z'), mọi thứ hoạt động tốt vì sau đó tham số clob xuất hiện sau tham số varchar trong truy vấn hibernate builds.
Chúng tôi gặp vấn đề tương tự với Hibernate 3.2.1 và được sửa bằng cách chèn bản ghi mà không có CLOB trước và sau đó cập nhật bản ghi đó bằng CLOB.
public class Employee{
@Lob
@Column
private String description;
//getters setters
}
String desc = emp.getDescription();
emp.setDescription(null);
session.save(entity);
session.flush();
session.evict(entity);
StringBuilder sb = new StringBuilder();
sb.append("update Employee set description:description");
Query updateQuery = session.createQuery(sb.toString());
updateQuery.setParameter("description", desc, Hibernate.STRING);
updateQuery.executeUpdate();
Nếu bạn đang sử dụng chú thích Hibernate thì không có cách nào để dự đoán thứ tự các cột trong câu lệnh chèn. Điều này đã được sửa trong Hibernate v4.1.8.
- 1. Loại Oracle Char và Hibernate
- 2. Hibernate Oracle và Character Encoding
- 3. Hibernate Lưu hành vi lạ
- 4. Lỗi Oracle lạ: Mã định danh quá dài ORA-00972
- 5. Hibernate với trình tự Oracle không sử dụng nó
- 6. Lỗi lạ NHibernate
- 7. phpUnit thất bại với lỗi lạ
- 8. oracle nơi giới hạn 1000/hibernate
- 9. Rối loạn lặp lại rõ ràng định kỳ với c3p0, Oracle và Hibernate
- 10. MSVC++: lạ với ints unsigned và tràn
- 11. java 7 lỗi nâng cấp và lỗi chú thích hibernate
- 12. Lỗi vòng MySQL lạ
- 13. Lỗi lạ trên Videojs
- 14. LLĐB lạ lỗi
- 15. Hành vi lạ với UISegmentedControl và UIAppearance
- 16. Lỗi tràn C# lạ
- 17. PlayFramework ~ chạy lỗi lạ
- 18. Lỗi apache lạ/lỗi POST PHP
- 19. Django - Oracle backend lỗi
- 20. Lỗi lạ với hàm tạo mặc định (C++)
- 21. Android: lỗi lạ trong Manifest
- 22. Oracle lỗi cú pháp
- 23. Thông báo lỗi lạ trong Xcode 4.3 với LLDB
- 24. Oracle và Pagination
- 25. JBoss EAP 6.x với Hibernate Oracle Sequence Giá trị trùng lặp trên khóa chính
- 26. setFirstResult Hibernate() của vấn đề với trình điều khiển JDBC Oracle
- 27. Hibernate Schema Validation Fails trên Bảng Oracle Từ đồng nghĩa
- 28. Lỗi lạ trong Eclipse Indigo
- 29. định danh oracle hibernate quá dài ORA-00972
- 30. IllegalStateException với Hibernate 4 và ManyToOne Cascading
tôi thấy rằng với các thực thể XML-ánh xạ tôi có thể thay đổi thứ tự của các thuộc tính trong cấu hình để có được những CLOBs đến cuối của câu lệnh INSERT/UPDATE. Ví dụ. ' ' –