Tôi có một cột trong cơ sở dữ liệu SQL-2005 của tôi trước kia từng là một varchar (max), nhưng nó đã được đổi thành một nvarchar (max).Làm thế nào có thể Hibernate ánh xạ dữ liệu SQL loại nvarchar (tối đa)?
Bây giờ tôi cần phải cập nhật tập tin bản đồ ngủ đông của tôi để phản ánh sự thay đổi, và đây là những gì nó được sử dụng là:
< loại element = "text" column = "Giá trị"/>
Khi tôi cố gắng để chạy các ứng dụng, các lỗi sau xuất hiện:
org.hibernate.HibernateException: loại cột sai trong [Bảng] cho giá trị cột. Tìm thấy: ntext, dự kiến: văn bản
tôi nên đặt gì trong 'loại' thuộc tính để xác lập bản đồ các cột như một nvarchar (max)?
Tôi đã thử đặt loại thành ntext, nhưng hibernate không biết đó là gì. Tôi đã thử đặt loại thành chuỗi, nhưng nó được xử lý chuỗi dưới dạng văn bản .
tại sao bạn đăng ký cột loại COLB là tốt?và $ 1 có nghĩa là gì trong nvarchar ($ 1)? Cảm ơn –
Điều này đã được một thời gian dài trước đây và tôi không thể nhớ khá, nhưng registerColumnType() ánh xạ các loại SQL để kiểu Hibernate. $ l (L, không phải # 1) là một mẫu phù hợp đại diện cho độ dài của cột nvarchar. Nếu cột nvarchar có độ dài được xác định, nó sẽ được ánh xạ tới kiểu VARCHAR. Nếu cột nvarchar có độ dài tối đa, cột này sẽ được ánh xạ tới loại CLOB. – ampersandre
Xin lưu ý rằng đối với máy chủ sql 2014, tôi phải * loại bỏ * phương thức ghi đè 'getTypeName' trong mã ở trên !! – vikingsteve