gpt4 book ai didi

java - 我可以将 hibernate/jpa 查询的结果映射到非实体的类吗?

转载 作者:行者123 更新时间:2023-12-02 00:06:07 26 4
gpt4 key购买 nike

我正在试验 Springboot,我有几个实体,它们的几个属性非常相似,例如:实体“汽车”具有型号和价格属性,“摩托车”模型也是如此。我想使用一个类来定义那些常见属性,类“Vehicle”具有属性模型和价格。

换句话说:

Car                             Motorcicle                             Vehicle
price price price
model model model
year year
color color
fuel_type fuel_type
... 30 more properites ...30 more properties

我想使用vehicle来映射Car和Motorcycle表之间SQL联合的搜索结果。

public interface ImovelRepositorio extends JpaRepository<Vehicle, Long> {

@Query(value = "here select query with union between car and motorcycle", nativeQuery = true)
List<Vehicle> searchVehicle();

}

这里的Vehicle类是一个没有任何注解的普通类。我收到错误消息,指出车辆不是托管类型。当然,我的存储库没有意义,我预料到会出现此错误。但我怎样才能实现我想要的呢?

当我执行联合时,我没有得到模型列表,而是得到一个或多个模型的列表。我想创建一个类来“组合”搜索结果。

最佳答案

您可以使用@MappedSuperClass,其中车辆可以是映射的父类(super class)。剩下的类可以扩展它。有点像下面这样:

super 类:

@MappedSuperClass
class Vehicle {
// constructor, getters, setters
}

实体类:

@Entity
class Car extends Vehicle {
// constructor, getters, setters
}

@Entity
class MotorCicle extends Vehicle {
// constructor, getters, setters
}

关于java - 我可以将 hibernate/jpa 查询的结果映射到非实体的类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58155176/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com