Już wyjaśniam. Robię testy integracyjne w Spring. Używam biblioteki dbUnit i ma ona dobrą adnotację

@DatabaseSetup("MoviePersistenceServiceImplIntegrationTests/init.xml")

któa z pliku XML dodaje obiekty do bazy. Ten plik zawiera https://pastebin.com/YQ4nMEfn. Utworzony obiekt filmu i obiekty trzech informacji o tym filmie: inny tytuł, data premiery i zarys fabuły. Wszystkie te trzy obiekty encje reprezentujące informacje o filmie dziedziczą z jednej encji MovieInfoEntity. Tutaj jest ustawiona adnotacja

@Inheritance(strategy = InheritanceType.SINGLE_TABLE)

a każdy obiekt encja dziedzicząca jest jest oznaczona dyskryminatorem

@DiscriminatorColumn(name = "dtype")

Podczas normalnego uruchomienia aplikacji Spring Boot dzięki temu mogę użyć np. metody

 List<MovieReleaseDateEntity> resultList = movieEntity.getReleaseDates()

i uzyskuję listę obiektów typu MovieReleaseDateEntity

Jednak w testach po dodaniu obiektów z tego pliku XML po użyciu metody

 List<MovieReleaseDateEntity> resultList = movieEntity.getReleaseDates()

dostaję
https://zapodaj.net/827bf8471bdb0.png.html nie wiadomo dlaczego wszystkie obiekty. Pierwszy obiekt to MovieOtherTitle, drugi MovieOutlineEntity i trzeci MovieReleaseDate. I zwróciło mi je wszystkie jako MovieReleaseDate i takie pola jak releaseDate i country wypełniło null https://zapodaj.net/205b4deaf1177.png.html. W tym przypadku nie zadziałał dyskryminator dtypu i pobrało to z bazy jako jeden typ, a są trzy

dtype="OTHER_TITLE"
dtype="RELEASE_DATE"
dtype="OUTLINE"

Dlaczego zaistniała taka sytuacja i pomimo dyskryminatora zwraca wszystkie obiekty dziedziczące z MovieInfoEntity?