Я пытаюсь создать двунаправленную связь с TableA и TableB, используя FORMULA, но я получаю ошибку:
java.lang.ClassCastException: org.hibernate.mapping.Formula canнельзя приводить к org.hibernate.mapping.Column в org.hibernate.persister.collection.AbstractCollectionPersister.(AbstractCollectionPersister.java:305) ~ [hibernate-core-5.0.12.Final.jar: 5.0.12.Final]
Не могли бы вы помочь мне решить эту проблему?
Объект A:
@Entity
@Table(name="TABLE_A")
public class TableA implements Serializable {
@Id
@Column(name="COD")
private Long cod;
@Column(name="SOME_TEXT")
private String someText;
@OneToMany(mappedBy = "tableA", fetch = FetchType.LAZY)
@JoinColumnsOrFormulas({
@JoinColumnOrFormula(formula=@JoinFormula(value="SUBSTR(SOME_TEXT, 5, 5)", referencedColumnName="SOME_TEXT")),
@JoinColumnOrFormula(column=@JoinColumn(name="COD_A", referencedColumnName="COD"))
})
private Set<TableB> tableB;
.......
Объект B:
@Entity
@Table(name="TABLE_B")
public class TableB implements Serializable {
@EmbeddedId
private TableBPK id;
@Column(name="COD_A")
private Long codA;
@Column(name="COD_B")
private String codB;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumnsOrFormulas({
@JoinColumnOrFormula(formula=@JoinFormula(value="COD_B", referencedColumnName="SOME_TEXT")),
@JoinColumnOrFormula(column=@JoinColumn(name="COD_A", referencedColumnName="COD", insertable=false, updatable=false))
})
private TableA tableA;
.......