2015-07-08 6 views
0

У меня есть небольшая проблема с отображением JPA. Я хочу сделать это:JPA-Hibernate-отображение первичного внешнего ключа

У меня есть таблица «продажа», и у нее есть id (ven_cod).

И у меня есть таблица «credit_sale», ее pk - это продажа pk, что означает, что некоторые продажи могут быть credit_sale.

Например, у меня есть 2 продажи, с кодом 01 и 02. Второй является credit_sale, чем в таблице «credit_sales» я буду иметь регистр с рк 02.

Как я могу карту это с jpa-hibernate ?? я попробовал это, но не получилось:

@Entity 
@Table(name = "venda_credito") 
public class VendaCredito { 

    private long cod; 
    private Cliente cliente; 
    private StatusPagamento statusPagamento; 
    private Date dataPagamento; 

    @Id 
    @JoinColumn(name = "ven_cod") 
    @OneToOne 
    public long getCod() { 
     return cod; 
    } 

    . 
    . 
    . 
@Entity 
@Table(name = "venda") 
public class Venda { 

    private long cod; 


    @Id 
    @GeneratedValue 
    @Column(name = "ven_cod") 
    public long getCod() { 
     return cod; 
    } 

    . 
    . 
    . 

Что я должен сделать эту работу?

+0

Что вам нужно, это '@ PrimaryKeyJoinColumn'. Идите и выполните поиск примеров и попробуйте. – DuncanKinnear

ответ

0

Вы можете использовать производную идентификационную информацию.

Изменить VendaCredito выглядеть следующим образом:

@Entity 
@Table(name = "venda_credito") 
public class VendaCredito { 

    private long cod; 
    private Venda venda; 
    private Cliente cliente; 
    private StatusPagamento statusPagamento; 
    private Date dataPagamento; 

    @Id 
    public long getCod() { 
     return cod; 
    } 

    @MapsId 
    @JoinColumn(name = "ven_cod") 
    @OneToOne 
    public long getCod() { 
     return cod; 
    } 
    . 
    . 
    . 

Это обсуждается в JPA 2.1 спецификации раздел 2.4.1.3 отл. 4.

+0

Я использовал @MapsId, но я создал встроенный идентификатор этой работы! благодаря –

Смежные вопросы