澄清多对一关联



我有两个表,分别叫 Stock 和 stock_daily_record。请在下面找到表格结构

股票

Id(主键)国际

名称 瓦尔查尔

stock_daily_record

Stockid(股票ID上的主键和外键)

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实体?

注意: 请不要考虑我的数据库设计,因为我试图通过这个虚拟设计来投射我的实际问题

@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
 }

试试这个配置

  @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
 }

最新更新