Как определить однонаправленное отношение OneToMany в JPA

У меня есть следующая проблема с сопоставлением сущностей в JPA. У меня есть две сущности: первая — это поиск, а вторая — текст, который представляет переводы для сущностей. Теперь мне нужно привязать поиск к тексту, но я не хочу, чтобы текст имел ссылку на поиск. Чтобы сделать это еще более сложным, Text использует в этой связи не свой первичный ключ, а метакод, определенный в столбце TXTHEAD_CODE.

Lookup.java

@Entity
@Table(name = "DATREG")
public class Lookup implements PersistableEntity {

    @Id
    @Column(name = "DATREG_META_CODE")
    private String metaCode;

    @OneToMany
    @JoinTable(name="TXT", 
            joinColumns=@JoinColumn(name="DATREG_META_CODE", referencedColumnName="TXTHEAD_CODE"),
            inverseJoinColumns=@JoinColumn(name="DATREG_META_CODE"))
    private List<Text> text;

Text.java

@Entity
@Table(name = "TXT")
public class Text {

    @Id
    @Column(name = "TXT_ID")
    private Long id;

    @Column(name = "TXTHEAD_CODE")
    private String code;

Итак, я попробовал этот (и несколько других вариантов ), но безрезультатно. Я также не могу создать таблицу соединений в БД и не хочу привязывать Lookup к моему классу Text. Так может ли кто-нибудь сказать мне, есть ли какой-то другой способ?

63
задан Petr Mensik 20 August 2012 в 13:13
поделиться