2012-03-22 18 views
7

Sto cercando di modellare questo rapporto seguendo questo link http://www.javaworld.com/javaworld/jw-01-2008/images/datamodel.gifmappatura degli attributi extra in un join tabella JPA 2

sua solita relazione molti a molti tra ordine e prodotti, ma non so come aggiungere le colonne aggiuntive nel Unisciti alla tabella.

@Entity 
@Table(name = "Orders") 
public class Order { 
    @ManyToMany(cascade = CascadeType.ALL) 
    @JoinTable(name = "ORDER_LINES", joinColumns = { @JoinColumn(name = "ORDER_ID") }, inverseJoinColumns = { @JoinColumn(name = "PROD_ID") }) 
    private Set<Product> products; 
} 

@Entity 
@Table(name="PRODUCTS") 
public class Product { 
    @ManyToMany(mappedBy="products") 
    private Set<Order> orders; 
} 

Come aggiungere l'attributo extra di Join Table in JPA 2.0?

Grazie

risposta

21

non esiste il concetto di avere ulteriore attributo persistente in relazione a JPA (2.0). Ecco perché la relazione con la proprietà è in realtà un'entità intermedia.

Sia per le entità ordine che per prodotto, è necessaria una relazione uno a molti con la nuova entità. A causa della relazione bidirezionale, la nuova entità avrà relazioni molti-a-uno su Ordine e Prodotto.

avete bisogno di andare per qualcosa di simile (mostra solo i rapporti, ID e altre mappature strappato via):

@Entity 
@Table(name="order_item") 
public class OrderItem { 
    @ManyToOne 
    private Order order; 
    @ManyToOne 
    private Product product; 
} 

@Entity 
public class Order { 
    @OneToMany (mappedBy = "order") 
    private Set<OrderItem> orderItems; 
} 

@Entity 
public class Product { 
    @OneToMany(mappedBy = "product") 
    private Set<OrderItem> orderItems; 
} 
+0

Thanks .. Ho ricevuto il tuo punto. Potrei richiedere per favore di aiutarmi con la mia altra domanda? http://stackoverflow.com/questions/9835124/jpa-manytomany-join-table-has-all-attributes-as-pk –

Problemi correlati