Запрос возвращает подклассы в Spring Project - PullRequest
0 голосов
/ 01 марта 2019

Я занимаюсь проблемами на уроках картирования моего весеннего Проекта.Поэтому каждый раз, когда я выполняю поиск в базовом классе, результатом были все записи базового класса и записи подклассов.

Родительский класс

@Data
@Entity
@Table(name="parent")
@AttributeOverrides({
@AttributeOverride(name="id", column=@Column(name="ite_id"))
})
@EqualsAndHashCode(callSuper = true)
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
@DiscriminatorValue("Parent")
public class Parent extends BaseEntity {

@OneToMany(cascade = CascadeType.ALL,
                fetch = FetchType.LAZY,
                mappedBy = "itens",targetEntity = Objeto.class)
    List<Objeto> objetos;


//Other fields here 


}

дочерний класс

@Data
@Entity
@Table(name="child")
@AttributeOverrides({
    @AttributeOverride(name="id", column=@Column(name="hom_id"))
})
@EqualsAndHashCode(callSuper = true)
@Polymorphism(type = PolymorphismType.EXPLICIT)
public class Child extends Parent {

@Column(name="hom_tds")
@Size(max=20)
String numeroTDS;
}

Все время я запрашиваю в суперклассе результатвернуть подкласс.Итак, я также попробовал Inhereted.Joined, те же результаты.Я посмотрел на документы и увидел некоторые материалы об аннотации явного полиморфизма.Но проблемы сохраняются.Я частично решаю эту проблему, выполняя собственный запрос, такой как select * from item

Вызов запроса:

@Override
@Transactional(readOnly = true)
public List<Parent> findaAll() {
    return repository.findAll();
}
classe ParentRepository

@Query("select itens from Parent itens")
 public List<Parent> findAll() ;

Я нашел объяснение этому на сайте https://www.baeldung.com/hibernate-inheritance: EntityНаследование означает, что мы можем использовать полиморфные запросы для извлечения всех сущностей подкласса при запросе суперкласса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...