Adr*_* Be 10 annotations hibernate one-to-many hibernate-annotations
我想使用连接表在两个表之间建立一对多的关系.
这就是我想使用连接表的原因:
最后,我想使用Hibernate注释来执行此操作.
我找到了一些使用xml映射执行此操作的示例,但没有使用注释.
我相信这将是如何创建表格的
CREATE TABLE `PRODUCT` (
`PRODUCT_ID` BIGINT PRIMARY KEY AUTO_INCREMENT
);
CREATE TABLE `PARTS` (
`PART_ID` BIGINT PRIMARY KEY AUTO_INCREMENT
);
-- USER_IMAGE_ID must be unique if we want a one-to-many relationship between PRODUCTS & PARTS tables
CREATE TABLE `USER_DETAILS_IMAGE` (
`PRODUCT_ID` BIGINT,
`PART_ID` BIGINT UNIQUE,
CONSTRAINT `FK_PRODUCT_ID` FOREIGN KEY (`PRODUCT_ID`) REFERENCES `PRODUCT`(`PRODUCT_ID`),
CONSTRAINT `FK_PART_ID` FOREIGN KEY (`PART_ID`) REFERENCES `PARTS`(`PART_ID`)
);
Run Code Online (Sandbox Code Playgroud)
JB *_*zet 31
不要寻找例子.阅读官方文档:
@Entity
public class Product {
private String serialNumber;
private Set<Part> parts = new HashSet<Part>();
@Id
public String getSerialNumber() { return serialNumber; }
void setSerialNumber(String sn) { serialNumber = sn; }
@OneToMany
@JoinTable(
name="PRODUCT_PARTS",
joinColumns = @JoinColumn( name="PRODUCT_ID"),
inverseJoinColumns = @JoinColumn( name="PART_ID")
)
public Set<Part> getParts() { return parts; }
void setParts(Set parts) { this.parts = parts; }
}
@Entity
public class Part {
...
}
Run Code Online (Sandbox Code Playgroud)
另请注意,这是单向一对多关联的默认值.因此,@JoinTable如果默认的表名和列名适合您,您甚至不必提供注释.
| 归档时间: |
|
| 查看次数: |
48736 次 |
| 最近记录: |