2016-03-04 2 views
0

Мы используем Spring Boot + Hibernate, один из наших классов присоединился к столбцу с FetchType.EAGER. Мы хотели бы, чтобы отключить выборку (просто возвращать пустой для этого столбца), но после того, как закомментировать ElementCollection и CollectionTable, я не могу скомпилировать со следующей ошибкой:Disable Fetch on Hibernate joinColumn

//@ElementCollection(fetch = FetchType.EAGER) 
//@CollectionTable(name = "gsf_locate_request_pth", joinColumns = {@JoinColumn(name = "locate_id")}) 
@Column(name = "pth_ref") 
private Set<Long> payToHoldRefs; 


Caused by: org.hibernate.MappingException: Could not determine type for: java.util.Set, at table: gsf_locate_request, for columns: [org.hibernate.mapping.Column(pth_ref)] 

ответ

1

Аннотация @Column(name = "pth_ref") для простых типов, как только String. Hibernate попробуйте поставить Set<Long> в одной колонке таблицы. Это невозможно, конечно. Просто используйте FetchType.LAZY

@ElementCollection(fetch = FetchType.LAZY) 
@CollectionTable(name = "gsf_locate_request_pth", joinColumns = {@JoinColumn(name = "locate_id")}) 
private Set<Long> payToHoldRefs; 
+0

В любом случае я могу просто отключить выборку (не LAZY)? – enfany

+0

@enfany Не знаю. Другой способ - загрузить объект с помощью прогнозов. –