Tôi nhận được thông báo "chữ không khớp với chuỗi định dạng".Ánh xạ một Ngày tháng Oracle cho một đối tượng Java bằng cách sử dụng Hibernate
Ví dụ, sau đây là một số phương pháp từ một lớp Java:
public String getDateTime();
public void setDateTime(String date_time);
Dưới đây là các bản đồ từ Hibernate tập tin cấu hình cho lớp đó:
<property name="dateTime" column="date_time">
và đây là DDL cho rằng cột:
CREATE TABLE "SCHEMA"."TABLE_NAME"
(
"DATE_TIME" DATE,
etc.
)
Tôi đã thử đặt loại = "ngày" và "dấu thời gian" (không phải cùng một lúc) làm attr trên thuộc tính trong cấu hình hibernate, và sau đó thay đổi kiểu Java từ String thành Date, nhưng điều đó đã cho tôi một lỗi khác. Tôi đọc một cái gì đó về ràng buộc các tham số nhưng không thể làm cho người đứng đầu hoặc đuôi của điều đó.
Khi tôi nhận xét rằng thuộc tính từ cấu hình mọi thứ khác đang hoạt động, vì vậy tôi chắc chắn đó là vấn đề của tôi. Điều gây phiền nhiễu là tôi có một ánh xạ bảng/lớp khác có vẻ giống như ánh xạ chuỗi Java Date-> Java mà không cho tôi vấn đề này.
Guh. Tôi không nghĩ rằng tôi đã thay đổi kiểu tham số phương thức setter từ String thành Date lần đầu tiên. Cảm thấy câm, bởi vì nó hoạt động như đồng hồ lần này. –
Điều này chỉ hoạt động nếu bạn KHÔNG bao gồm thuộc tính "loại" trong thuộc tính ánh xạ: Nếu bạn bao gồm loại có giá trị "ngày" hoặc "dấu thời gian "nó sẽ không chính xác chuyển đổi các giá trị. Vì vậy, sau đây là BAD: Đây là một liên kết giải thích lý do tại sao điều này là đúng: http://fishbowl.pastiche.org/2005/07/13/hibernate_oracle_and_dates_a_story/và đây là một liên kết giải thích các giải pháp: http://www.enavigo.com/2007/10/20/mapping-hibernate-to-oracle-date-fields/ –