2015-02-09 1 views
0

Я пытаюсь получить объект с использованием 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.

+0

Попробуйте изменить запрос, как @Query («Выберите WP от entity1 Wp порядка по wp.entity2.name») – Ramesh

+0

@Ramesh это не работает , – HVT7

ответ

0

Изменение запроса к следующему решаемой мой вопрос:

@Query("select wp.id, wp.entity2, wp.treeLevel from Entity1 wp order by wp.entity2.name") 
Смежные вопросы