类层次结构:
| Vehicle
+ - Motorized
+ - - Truck
数据库表 - 将“车辆”字段放入“机动化”表中,但将“机动化”和“卡车”保留为单独的表:
机动化 - 有车辆字段
卡车 - FK 至机动化
在 JPA
中是否有一种简单的方法可以做到这一点?
例如这样就可以使用以下内容:
EntityManager em = factory.createEntityManager();
Query q = em.createQuery("select t from Todo t");
List<Vehicle> vehicles = q.getResultList();
find方法可以实现多态吗?
Vehicle vehicle = em.find(Vehicle.class, 123);
最佳答案
我认为您正在寻找 JPA joined inheritance .
我不太确定 find 方法是否会获得多态性,但我认为是这样,因为 Hibernate 按 ID 维护其所有对象的一级缓存;如果您通过 ID 请求该对象,则它必须返回相应子类的实例。
关于java - JPA-继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21765881/