我有两个表,分别叫 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
}