小编Csa*_*aba的帖子

JPA EntityManager查找方法返回代理

我有两个实体.一个继承自另一个.

例:

@Entity
@Table(name = "vehicle")
@Inheritance(strategy = InheritanceType.JOINED)
public class VehicleEntity {
    //id, etc., all reference fetch type is LAZY
}

@Entity
@Table(name = "car")
public class CarEntity extends VehicleEntity {
    //special parameters, all reference fetch type is LAZY
}
Run Code Online (Sandbox Code Playgroud)

当我在EntityManager上使用现有汽车的id调用find()时,如下所示:

VehicleEntity vehicleEntity = entityManager.find(VehicleEntity.class, carID);
Run Code Online (Sandbox Code Playgroud)

我找回了一个代理对象,但我需要访问CarEntity类的特殊方法,因为我想设置一些新的参数.

有人可以帮我,我该怎么做?

当然这只是一个示例问题.更具体地说:在我调用find之后我正在检查返回对象的实例,如果它是"CarEntity"我设置参数,如果不是我什么都不做.我在"CarEntity"旁边有更多的继承类,我和以前一样做了同样的程序.我知道我可以用特定对象类的"find"来解决这个问题,但是我必须多次调用"find",当我正在寻找任何"VehicleEntity"时,我总是对实际对象感兴趣所以最好的是全球解决方案.

java hibernate jpa

3
推荐指数
1
解决办法
3208
查看次数

标签 统计

hibernate ×1

java ×1

jpa ×1