1

問題があります 継承 TABLE_PER_CLASS と 3 つの子テーブル StationCompany StationAnalysis StationVariant を持つ基本抽象エンティティ ステーションがあります

@MappedSuperclass
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS )
public abstract class Station {

@Entity
public class StationCompany extends Station {

@ManyToOne(optional = false, fetch = FetchType.EAGER)
@Fetch(FetchMode.SELECT)
private Company company;

@Entity
public class StationAnalysis extends StationCompany {

@ManyToOne(optional = false, fetch = FetchType.EAGER)
@Fetch(FetchMode.SELECT)
private Analysis analysis;

@Entity
public class StationVariant extends StationAnalysis {

@ManyToOne(optional = false, fetch = FetchType.EAGER)
@Fetch(FetchMode.SELECT)
private Variant variant;

public interface IStationCompanyRepository extends JpaRepository<StationCompany, Long> {

@Service
public class StationService implements IStationService<StationCompany> {

    @Autowired
    IStationCompanyRepository stationCompanyRepository;

次に、StationCompanyでfindAllを検索し、休止状態でユニオン選択でクエリを作成します。StationCompany エントリのみを検索します。

select x from ( select a from StationCompany union select b from StationVariant union select c from StationAnalysis )
4

2 に答える 2

3

問題は休止状態のマッピングでした。Station から StationCompany から Station への構造に問題があったと思います...追加の Abstract @MappedSuperclass クラスで問題を解決します。その後、休止状態が正しいテーブルを選択し、ユニオンが選択されなくなります。

@MappedSuperclass
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class Station {

@MappedSuperclass
public abstract class AbstractStationCompany extends Station {
    @ManyToOne(optional = false, fetch = FetchType.EAGER)
    @Fetch(FetchMode.SELECT)
    private Company company;

@Entity
public class StationCompany extends AbstractStationCompany {

@MappedSuperclass
public class AbstractStationAnalysis extends AbstractStationCompany {
    @ManyToOne(optional = false, fetch = FetchType.EAGER)
    @Fetch(FetchMode.SELECT)
    private Analysis analysis;

@Entity
public class StationAnalysis extends AbstractStationAnalysis {

@Entity
public class StationVariant extends AbstractStationAnalysis {
于 2014-06-23T05:55:14.977 に答える