0

需要帮助在 Hibernate 继承中实现此场景

Cow 和 Dog 都继承 Animal 类,
Cow 和 Dog 都有“后代”列表
Cow 有额外的列表 - 每月疫苗日期
这种 Hibernate 表示是否正确?
将 OneToMany 疫苗列表放在 Cow 类上是否正确,
或者它需要放在 Animal 类上?
谢谢!

@Entity
@Table(name = "animals")
@DiscriminatorColumn(name="animal_type")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
public abstract class Animal{

 @Id
 @Column(name = "animalId" ,nullable = false)
 private String animalId;

 @OneToMany(cascade=CascadeType.ALL)
 private List<Animal> offsprings = new ArrayList<Animal>();

public List<Animal> getOffsprings() {
    return offsprings;
}

...
}

@Entity
@DiscriminatorValue("COW")
public class Coe extends Animal {

@OneToMany(cascade=CascadeType.ALL)
 **private List<Vaccine> vaccine = new ArrayList<Vaccine>();**

}

@Entity
@DiscriminatorValue("DOG")
public class Dog extends Animal {
    private chipId;
}
4

1 回答 1

1

您需要将它放在牛类中,因为在您的情况下,它是牛而不是狗的特定属性。

然而,这两个实体都存储在一个表中。这意味着在数据库中,也没有什么可以阻止狗接种疫苗。

如果你有更多的属性,比如疫苗,属于牛而不是狗,我会重新考虑我的继承策略。

于 2012-04-21T18:33:17.083 回答