Я пытаюсь получить объект с использованием Hibernate и JPA. Но выбор одного объекта пытается найти столбцы второго объекта в первом объекте. вот код:Невозможно отобразить объекты. Получение одного объекта дает столбцы второго объекта в столбцах первого объекта
У меня есть две сущности:
Entity1.java
@Id
@Column(name = "WRITE_PROTECTION_ID")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = FrontendDBTableSequenceNm.WRITE_PROTECTION_ID_SEQ)
@SequenceGenerator(name = FrontendDBTableSequenceNm.WRITE_PROTECTION_ID_SEQ,
sequenceName = FrontendDBTableSequenceNm.WRITE_PROTECTION_ID_SEQ, allocationSize = 1)
private Long id;
/** The division. */
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "DIVISION_ID")
private Entity2 entity2;
Entity2.java
@Id
@Column(name = "DIVISION_ID")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = FrontendDBTableSequenceNm.DIVISION_ID_SEQ)
@SequenceGenerator(name = FrontendDBTableSequenceNm.DIVISION_ID_SEQ,
sequenceName = FrontendDBTableSequenceNm.DIVISION_ID_SEQ, allocationSize = 1)
private Long id;
/** The name. */
@Column(name = "DIVISION_NM")
@ChangeLog
private String name;
/** The sort order. */
@Column(name = "SORT_ORDER")
@ChangeLog
private Integer sortOrder;
/** The markets. */
@OneToMany(mappedBy = "division")
private Set<Market> markets;
/** The company. */
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CMPNY_ID")
private Company company;
Теперь, когда я пытаюсь принести объект один в использовании хранилище:
@Query("from Entity1 wp order by wp.entity2.name")
List<WriteProtection> findAllOrderByDivision();
запрос, который попадает в базу данных является:
select entity0_.ENTITY_1_ID as WRITE1_20_,
entity0_.CREATE_BY as CREATE2_20_,
entity0_.CREATE_TMS as CREATE3_20_,
entity0_.UPD_BY as UPD4_20_,
entity0_.UPD_TMS as UPD5_20_,
entity0_.ENTITY2_ID as ENTITY27_20_,
entity0_.TREE_LEVEL as TREE6_20_
from rmc_dev_rel3.ENTITY_1 entity0_, rmc_dev_rel3.ENTITY2 ENTITY21_
where entity0_.ENTITY2_ID=ENTITY21_.ENTITY2_ID order by ENTITY21_.ENTITY2_NM;
Поэтому в основном то, что он делает, он пытается найти столбцы второго объекта в первый объект.
Как здесь, столбцы «CREATE_BY», «CREATE_TMS», «UPD_BY» и «UPD_TMS» являются столбцами в сущности2, но запрос пытается извлечь его из entity1.
Попробуйте изменить запрос, как @Query («Выберите WP от entity1 Wp порядка по wp.entity2.name») – Ramesh
@Ramesh это не работает , – HVT7