【发布时间】:2014-12-15 11:16:54
【问题描述】:
我正在使用 JPA,而 Jackson 用于生成 JSON
Emp.java
@Entity
@NamedQuery(name = "Emp.findAll",
query = "select o.empNo, o.empName from Emp o ")
@Table(name = "EMP")
public class Emp implements Serializable {
@Column(name = "ename")
private String empName;
@Id
@Column(name = "empno", nullable = false)
private String empNo;
.....
在服务类中我有以下代码
@GET
@Path("/emplist")
@Produces(MediaType.APPLICATION_JSON)
public Object getEmployees() {
List<Emp> list = this.findAll();
ObjectMapper objectMapper = new ObjectMapper();
empAsJson = objectMapper.writeValueAsString(list);
public List<Emp> findAll() {
return getEntityManager().createNamedQuery("Emp.findAll").getResultList();
}
问题是生成的 JSON 没有属性名称,例如
["2390","JAMES"],
而如果我将 Emp 类中的 namedQuery 更改为
select o from Emp o
然后生成的 JSON 具有如下所示的属性名称
[{"empNo":"2390","empName":"JAMES"},
这可能是什么原因,我该如何解决这个问题?
【问题讨论】: