Vì vậy, tôi có lược đồ DB hiện tại với một số bảng mà tôi muốn lập mô hình với JPA/Hibernate. Mỗi bảng có cùng một nhóm 30 cột bổ sung (để cho phép mở rộng thời gian chạy của số trường được ghi ).Có thể định nghĩa động các tên cột trong Hibernate/JPA không?
CREATE TABLE XX
(
"ID" VARCHAR2(100 BYTE) NOT NULL ENABLE,
"USER_LABEL" VARCHAR2(256 BYTE),
"CREATION_DATE" NUMBER(38,0) NOT NULL ENABLE,
"ADD_STR_FIELD_0" VARCHAR2(200 BYTE),
"ADD_LNG_FIELD_0" NUMBER(38,0),
"ADD_DBL_FIELD_0" NUMBER(38,0),
"ADD_STR_FIELD_1" VARCHAR2(200 BYTE),
"ADD_LNG_FIELD_1" NUMBER(38,0),
"ADD_DBL_FIELD_1" NUMBER(38,0),
"ADD_STR_FIELD_2" VARCHAR2(200 BYTE),
"ADD_LNG_FIELD_2" NUMBER(38,0),
"ADD_DBL_FIELD_2" NUMBER(38,0),
"ADD_STR_FIELD_3" VARCHAR2(200 BYTE),
"ADD_LNG_FIELD_3" NUMBER(38,0),
"ADD_DBL_FIELD_3" NUMBER(38,0),
"ADD_STR_FIELD_4" VARCHAR2(200 BYTE),
"ADD_LNG_FIELD_4" NUMBER(38,0),
"ADD_DBL_FIELD_4" NUMBER(38,0),
"ADD_STR_FIELD_5" VARCHAR2(200 BYTE),
"ADD_LNG_FIELD_5" NUMBER(38,0),
"ADD_DBL_FIELD_5" NUMBER(38,0),
"ADD_STR_FIELD_6" VARCHAR2(200 BYTE),
"ADD_LNG_FIELD_6" NUMBER(38,0),
"ADD_DBL_FIELD_6" NUMBER(38,0),
"ADD_STR_FIELD_7" VARCHAR2(200 BYTE),
"ADD_LNG_FIELD_7" NUMBER(38,0),
"ADD_DBL_FIELD_7" NUMBER(38,0),
"ADD_STR_FIELD_8" VARCHAR2(200 BYTE),
"ADD_LNG_FIELD_8" NUMBER(38,0),
"ADD_DBL_FIELD_8" NUMBER(38,0),
"ADD_STR_FIELD_9" VARCHAR2(200 BYTE),
"ADD_LNG_FIELD_9" NUMBER(38,0),
"ADD_DBL_FIELD_9" NUMBER(38,0),
}
tôi có kế hoạch để xác định các lớp học đơn giản cho mỗi bảng
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="XX")
public class XX {
@Id
Long id = null;
}
và sau đó xác định các tham số bổ sung phổ biến ở một lớp học phổ biến
import javax.persistence.Column;
public abstract class AdditionalParameters {
@Column(name="ADD_STR_FIELD_0")
private String addStringField0 = null;
@Column(name="ADD_LNG_FIELD_0")
private Long addLongField0 = null;
@Column(name="ADD_DBL_FIELD_0")
private Double addDoubleField0 = null;
....
....
....
@Column(name="ADD_STR_FIELD_8")
private String addStringField8 = null;
@Column(name="ADD_LNG_FIELD_8")
private Long addLongField8 = null;
@Column(name="ADD_DBL_FIELD_8")
private Double addDoubleField8 = null;
}
trong khi điều này sẽ làm việc, tôi không như bản chất mã hóa của lớp.
Tôi muốn mô hình hóa từng bộ trường chuỗi, trường dài và kép làm nhóm thông số bổ sung và sau đó có 0,9 nhóm. Điều này sẽ cho phép tôi dễ dàng thêm các nhóm phụ sau này nếu cần.
Nếu tôi sử dụng giải pháp lập bản đồ xml, tôi có thể tự động xác định tên cột chính xác khi tạo tệp .hbm.xml cho mỗi bảng. Tôi muốn sử dụng một giải pháp chú thích, nhưng có cách nào để ghi đè lên phương thức @Column getName() để tôi có thể trả về tên cột được tạo động không?
này sẽ làm điều đó thực sự, 1 –