Bu yüzden mevcut DB şemasına JPA/Hazırda Bekletme modunu kullanmak istediğim bir dizi tabloyla sahibim. Her bir tablonun aynı grup 30 ek sütununa sahiptir (kaydedilen alanların sayısının numaralı çalışma zamanının genişlemesine izin vermek için).Hibernate/JPA'da sütun adlarını dinamik olarak tanımlamak mümkün mü?
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),
}
Her tablo için
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="XX")
public class XX {
@Id
Long id = null;
}
basit sınıfları tanımlamak ve bu işe olurken o benim yok, ortak bir sınıfı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;
}
ortak ek parametreleri tanımlamak için plan sınıfın hardcoded doğası gibi.
Her bir dizi dizisini, uzun ve çift alanları ek bir parametre grubu olarak modellemek istiyorum ve , 0..9 gruba sahip. Bu, gerekirse daha fazla grubu kolayca eklememe izin verir.
xml eşleme çözümünü kullanırsam, her tablo için .hbm.xml 'u oluştururken dinamik olarak doğru sütun adını belirleyebilirim. Açıklamalı bir çözüm kullanmayı tercih ediyorum, ancak dinamik olarak oluşturulmuş bir sütun adını döndürmek için @ Column getName() yöntemi 'u geçersiz kılacak bir yol var mı?
Bu, 1 gerçekten yapacak:
Neyse, burada tabloları birleştirmek için formu TYPE1_TYPE2 tablosu adlarını oluşturur ve tüm tablolara ortak önek ekleyen bir örnek NamingStrategy olduğunu –