【发布时间】:2015-02-20 10:44:35
【问题描述】:
在 Spring Data Jpa 中,我们可以灵活地将所需字段查询结果映射到 VO 对象,而无需将实体对象暴露在外部。
使用的数据库 :: mysql
第一种方式::
@Query("SELECT new CountryVO(c.id,c.name) FROM Country c")
public List<CountryVO> getCountries();
//国家实体
public class Country{
private long id;
private String name;
@DBRef
private State state;
}
// 状态实体
public class State{
private long id;
private String name;
}
//国家配音
public class CountryVO{
private long id;
private String name;
private String stateName;
}
第二种方式::
@Query("SELECT DISTINCT c.name FROM Country c")
public List<String> getNames();
现在我的意思是我使用 Spring Data mongoDB 和 mongoDB 数据库,这里的查询方式不同,如下所示
@Query(value = "{}", fields = "{'id':1,'name':1,'state.name':1}")
List<CountryVO> getAllCountries();
在上面的查询中,我们可以在 fields 属性中提到我们想要的任何字段,其余字段将作为空值出现,但我想将输出结果映射到像 Spring Data Jpa 这样的 VO。
请告诉我任何可能性
提前致谢
【问题讨论】:
标签: java spring mongodb spring-data-jpa spring-data-mongodb