0
我有一個POJO類的人有兩個字段。讓我們假設只有其中一人持有價值,另一種是總是空Criteria Api:在多選中使用另一個參數,如果第一個參數爲空
public class Person {
private String music;
private String sports;
...
}
我想以填充的一種或另一種爲通過標準阿比的DTO的列表。 這裏是我的(不完全)DAO代碼的一個片段:
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<PersonDTO> query = cb.createQuery(PersonDTO.class);
Root<Person> root= query.from(Person.class);
Path<String> musicPath = root.get(Person_.music);
Path<String> sportsPath= root.get(Person_.sports);
query.multiselect(/** TODO */);
List<PersonDTO> results = em.createQuery(query).getResultList();
有沒有爲使用音樂奧德體育爲多選的方式,這取決於他們的不爲空當前記錄。 或者我必須定義一個子查詢來實現這種行爲?
謝謝非常,coalesce做到了! 'construct'方法不是必需的,我只是做了一個: query.multiselect(cb.coalesce(musicPath,sportsPath),...) – wusi