2012-07-28 60 views
1

我有三张表,我想将它们映射到休眠4. 我使用多对一的注释。我不知道如何映射2个以上的表格。在休眠注释中映射2个以上的表格

1. Stuff 
CREATE TABLE TBLSTUFF (
    STUFF_ID       NUMBER NOT NULL, 
    STUFF_DESCRIPTION    VARCHAR2(10), 
    MUNIT       VARCHAR2(10), 
    ORDERPOINT      NUMBER, 
    STOCK       NUMBER, 
    CONSTRAINT PK_TBLSTUFF 
    PRIMARY KEY (STUFF_ID) 
); 
2. STUFFRECEPTION 
CREATE TABLE TBLSTUFFRECEPTION (
    STUFF_ID       NUMBER, 
    PROVIDER_ID      NUMBER, 
    RECEPTIONDATE     DATE, 
    QUANTITY       NUMBER, 
    RECEPTION_ID      NUMBER NOT NULL, 
    CONSTRAINT PK_TBLSTUFFRECEPTION 
    PRIMARY KEY (RECEPTION_ID) 
); 


ALTER TABLE TBLSTUFFRECEPTION ADD CONSTRAINT FK_STUFF 
    FOREIGN KEY (STUFF_ID) 
    REFERENCES TBLSTUFF (STUFF_ID); 

ALTER TABLE TBLSTUFFRECEPTION ADD CONSTRAINT FK_PROVIDER 
    FOREIGN KEY (PROVIDER_ID) 
    REFERENCES TBLPROVIDER (PROVIDER_ID); 


3.provider 
CREATE TABLE TBLPROVIDER (
    PROVIDER_ID      NUMBER NOT NULL, 
    PROVIDER_NAME     VARCHAR2(10), 
    PROVIDER_ADDRESS     VARCHAR2(10), 
    PROVIDER_TELL     VARCHAR2(11), 
    CONSTRAINT PK_TBLPROVIDER 
    PRIMARY KEY (PROVIDER_ID) 
); 

在Stuffreception.java中,应该怎么写多对一的注释? 这是真的吗?

@Entity 
@Table(name="TBLSTUFFRECEPTION") 
public class Stuffreception { 
@Id 
@Column(name="RECEPTION_ID") 
private int recep_id; 
@Column(name="QUANTITY") 
private int quantity; 
@Column(name="RECEPTIONDATE") 
private Date recep_date; 
@ManyToOne 
@JoinColumn(name="PROVIDER_ID") 
private Provider provider; 
@ManyToOne 
@JoinColumn(name="STUFF_ID") 
private Stuff stuff; 

public Stuffreception(int recep_id, int quantity, Date recep_date) { 
    super(); 
    this.recep_id = recep_id; 
    this.quantity = quantity; 
    this.recep_date = recep_date; 
} 
//getter and setter method 

请帮帮我。

+1

你是否面临任何错误?这似乎很好。 – SiB 2012-07-28 08:04:47

+0

@BharatSinha,我没有错误,我只知道它是真的。 – samira 2012-07-28 08:07:23

+0

这个实现很好。 – SiB 2012-07-28 08:12:00

回答

0

嗯,这是我在我的应用程序中做到的。所以这是要走的路。