Запросы dsl для типов наследования

У меня есть три класса, такие как Vehicle как базовый тип, а Car and Bike - это класс Vehicle.

Проблема в том, что я хочу получить все Транспортные средства, использующие запрос dsl, и условия для транспортных средств

  • Автомобильный объект должен быть заполнен маркой и полным количеством фишек (не любых других)
  • Объект велосипеда должен быть заполнен только полем бренда (не любым другим).

Класс автомобиля

@Entity
@Table(name="vehicles")
@Inheritance(strategy=InheritanceType.JOINED)
public class Vehicle { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "id", length = 30) private Integer id; private String brand; private String color; public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public String getColor() { return color; } public void setColor(String color) { this.color = color; }
}

Класс автомобиля

@Entity
@Table(name="cars")
public class Car extends Vehicle { private int totalDoor; private int numeberofSeats; public int getTotalDoor() { return totalDoor; } public void setTotalDoor(int totalDoor) { this.totalDoor = totalDoor; } public int getNumeberofSeats() { return numeberofSeats; } public void setNumeberofSeats(int numeberofSeats) { this.numeberofSeats = numeberofSeats; }
}

Класс велосипеда

@Entity
@Table(name="bikes")
public class Bike extends Vehicle { private int numerberOfTiers; public int getNumerberOfTiers() { return numerberOfTiers; } public void setNumerberOfTiers(int numerberOfTiers) { this.numerberOfTiers = numerberOfTiers; }
}

Запрос для всех автомобилей, но где указать автомобильные и велосипедные прогнозы?

List<vehicle> vehicles = new JPAQuery(manager) .from(vehicle) .distinct() .list(Projections.bean(Vehicle.class , vehicle.brand));
</vehicle>
1 ответ

Вы можете заполнять определенные подтипы в отдельных запросах, но не в одном запросе. Таким образом, вы можете либо задать отдельные запросы для подтипов, либо опубликовать результаты процесса.

licensed under cc by-sa 3.0 with attribution.