使用hibernate时返回小写列名

时间:2012-12-13 01:28:48

标签: java mysql json spring hibernate

我有一个Javascript应用程序,它使用Java作为Hibernate,Spring和MySQL的后端。问题是,即使我在我的数据库中有大写列,也在我的实体源中,我在后端返回的JSON中得到小写的列名。

以下是模型来源:

package app.model;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

import org.codehaus.jackson.annotate.JsonAutoDetect;

@JsonAutoDetect
@Entity
@Table(name="resources")
public class Resource {

    @Id
    @GeneratedValue
    @Column(name="Id")
    private int Id;

    @Column(name="Name", nullable=false)
    private String Name;

    public int getId() {
        return Id;
    }

    public void setId(int id) {
        this.Id = id;
    }

    public String getName() {
        return Name;
    }

    public void setName(String name) {
        this.Name = name;
    }
}

返回的JSON:

{"data":[{"name":"Tom","id":8},{"name":"Mike","id":9},{"name":"Jerry","id":10},{"name":"Larry","id":11},{"name":"Tina","id":12},{"name":"Tony","id":15}],"success":true}

这种行为在某种程度上是可覆盖/可配置的吗?如果需要更多内容,我将使用所需数据更新帖子。

2 个答案:

答案 0 :(得分:3)

这是杰克逊基于getter方法名称的传统输出。使用@JsonProperty注释覆盖此行为。

答案 1 :(得分:3)

试试这个..

@JsonProperty("Id")
public int getId() {
    return Id;
}

public void setId(int id) {
    this.Id = id;
}
@JsonProperty("Name")
public String getName() {
    return Name;
}

public void setName(String name) {
    this.Name = name;
}