2014-02-21 95 views
0

我有兩個名爲Stock和stock_daily_record的表。請在下面找到多對一協會澄清

股票

ID(主鍵)詮釋的表結構上的ID

名稱VARCHAR

stock_daily_record

Stockid(主鍵&外鍵股票)

STOCK_PRICE(主鍵)

我的實體類

@Entity @Table(name = "stock") 
class Stock 
{ 
    @id @column(name=」id」) 
    Private int id; 

    @column(name=」name」) 
    Private String name; 

    @oneToMany(fetch = FetchType.LAZY) 
    Private Set<DailyStockRecord> dailyRecords; 

    //Getters and setters,equals 
} 

我隔壁班的DailyStockRecord獨含複合鍵。如何定義這兩個類之間的映射。另外如何定義DailyStockRecord實體?

注: 請不要考慮我的數據庫設計因爲我試圖通過這個虛擬設計

+2

您的數據庫設計沒有意義。如果一隻股票可以有多條記錄,則stock_id不能是stock_daily_record表的主鍵:根據定義,主鍵必須是唯一的。添加另一列並將其設爲主鍵,並僅將stock_id設爲外鍵。 –

回答

0

項目我的實際問題如下嘗試這種配置

@Entity 
    @Table("stock_daily_record") 
    public class DailyStockRecord 

     @EmbeddedId 
     private DailyStockId stockId; 

     @MapsId("stockId") 
     @ManyToOne 
     private Stock stock; 

而且嵌入關鍵:

@Embeddedable 
public class DailyStockId 

    private int dailyStockId; 
    private int stockId; 

並將您的代碼更新到

@Entity 
@Table(name = "stock") 
public class Stock 

    @id @column(name=」id」) 
    Private int id; 

    @column(name=」name」) 
    Private String name; 

    @OneToMany(fetch = FetchType.LAZY, mappedBy="stock") 
    Private Set<DailyStockRecord> dailyRecords; 

    //Getters and setters,equals 
} 
+0

感謝您的回覆... – Kannan

+0

嘗試此映射時出現以下錯誤_Caused by:org.hibernate.AnnotationException:mappedBy引用未知目標實體屬性:_ – Kannan

0
@Entity @Table(name = "stock_daily_record") 
class StockDailyRecord 
{ 
    @id @column(name=」Stockid」) 
    Private int stockId; 

    @column(name=」Stock_price」) 
    Private String stockPrice; 

    @ManyToOne(fetch = FetchType.LAZY) 
    @joinColumn(name="id") 
    Private Stock stock; 

    //Getters and setters,equals 
} 
+0

感謝您的回覆。將檢查它 – Kannan

+0

這個建議也給了我下面的錯誤_Caused by:org.hibernate.AnnotationException:mappedBy引用一個未知的目標實體屬性:_ – Kannan

+0

你可以提供這個異常的完整堆棧跟蹤 –