2

我有两个 MySQL 表,想用 hibernate 映射它们:

cars
- Id
- owner

audis:
- AudiId
- model

在代码中:

@Entity
@Table(name = "cars")
public class Car{
    Integer id;
    String owner;
}

@Entity
@Table(name = "audis")
public class Audi extends Car{
    String model;
}

我想在它们之间有一个连接的主键,以便 audiId 引用汽车表中的 Id。ID 应自动递增。

例子:

cars
id: 1 owner: "John"
id: 2 owner: "Jim"
id: 3 owner: "Jake"

audis
audiId: 1 model: "A8"
audiId: 3 model: "A6"

用hibernate做到这一点的最佳方法是什么?我必须添加哪些注释?缺少哪些代码(getter 和 setter 除外)?

我发现很多关于这个主题的教程非常令人困惑,所以我将不胜感激。

4

2 回答 2

0

尝试@Inheritance(strategy=InheritanceType.JOINED)class的注释Car。您也可以@Id @GeneratedValue用于班级Id成员。Car

是一个如何使用 hibernate 继承的示例。希望能帮助到你。

于 2012-07-24T17:14:27.613 回答
0

您可以在您的超类 (Car) 中使用注释,并使用@Id@Inheritance(strategy=InheritanceType.JOINED)在您的 Car 中创建一个 id 属性并将其标记为@GeneratedValue

然后,在您的子类中使用@PrimaryKeyJoinColumn(name="car_id"),其中名称必须与 Car 超类的 id 中使用的名称相同。

@PrimaryKeyJoinColumn注释指定一个主键列,用作连接到另一个表的外键。

这是一个非常简单的例子来了解它。

于 2012-07-24T17:23:50.603 回答