Как использовать @OntToMany двунаправленно с @Formula в Hibernate? - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь создать двунаправленную связь с 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;

.......

...