Я тренируюсь, чтобы нанести на карту legacy db.
@Entity
public class ProcessPoint extends GenericModel {
@Id
@GeneratedValue
@Column(name = "zkodid")
public Long id;
@ManyToOne
@JoinColumnsOrFormulas({
@JoinColumnOrFormula(column = @JoinColumn(name = "TELTXT", insertable = false, updatable = false, referencedColumnName = "id")),
@JoinColumnOrFormula(formula = @JoinFormula(value = MeasurementLongName.TYP_TABLICY, referencedColumnName = "typ_tablicy"))
})
public MeasurementLongName measurementLongName;
...
}
MeasurementLongName
@Entity
@DiscriminatorValue(value=MeasurementLongName.TYP_TABLICY)
public class MeasurementLongName extends SystemName {
public static final String TYP_TABLICY = "23";
}
@Entity
@Table(name = "BAZA_NAZW")
@Inheritance
@DiscriminatorColumn(name="typ_tablicy")
@org.hibernate.annotations.Filter(
name = "limitByLang",
condition="lang_id = :currentLang"
)
@IdClass(SystemNameId.class)
public class SystemName extends GenericModel {
@Id
public Long id;
@Id
@Column(insertable = false, updatable = false)
public int typ_tablicy;
@Column(name = "opis")
public String description;
@Override
public String toString() {
return description;
}
BAZA_NAZW:
@Entity
@Table(name = "BAZA_NAZW")
@Inheritance
@DiscriminatorColumn(name="typ_tablicy")
@org.hibernate.annotations.Filter(
name = "limitByLang",
condition="lang_id = :currentLang"
)
@IdClass(SystemNameId.class)
public class SystemName extends GenericModel {
@Id
public Long id;
@Id
@Column(insertable = false, updatable = false)
public int typ_tablicy;
@Column(name = "opis")
public String description;
@Override
public String toString() {
return description;
}
Когда я пытаюсь сделать запрос:
List<ProcessPoint> processPoints = ProcessPoint.find("station", station).fetch();
Я получил:
Обнаружено исключение javax.persistence.PersistenceException, org.hibernate.HibernateException: текст SqlNode не ссылается на ожидаемое количество столбцов