Java JPA存储库和多态

时间:2016-05-20 09:34:43

标签: java hibernate inheritance polymorphism spring-data-jpa

我的应用程序中有以下对象模型和存储库:

@Entity
class Vehicle {}

class Car extends Vehicle {}
class Truck extends Vehicle {}

@Repository
public interface VehicleRepository extends JpaRepository<Vehicle, Long> {}

我试图开始工作的是:

Vehicle t = new Truck();
VehicleRepository r = new VehicleRepository();
r.save(t);

如何在不需要将Truck复制到Vehicle对象的情况下使此代码正常工作?

谢谢!

1 个答案:

答案 0 :(得分:0)

Alan Hay与您联系,您需要设置继承:

  1. 将@Entity添加到所有类
  2. 将@Inheritance添加到您的Vehicle类以启用entityManager的继承,如果您不应该存储任何原始Vehicle,您可以使用@MappedSuperClass
  3. 其余的我重新链接Alan Hay提供的链接:https://en.wikibooks.org/wiki/Java_Persistence/Inheritance