Java 如何以json格式返回hibernate查询选择的值?

Java 如何以json格式返回hibernate查询选择的值?,java,Java,我这里的问题是如何以json格式返回从hibernate查询中选择的值 BankController.java @RequestMapping(value = "/getohlcall", method = RequestMethod.POST) public @ResponseBody List<Trading_Data> getOhlcAll(@RequestBody OhlcRequest ohlcRequest) { List<Trading_Data>

我这里的问题是如何以json格式返回从hibernate查询中选择的值

BankController.java

@RequestMapping(value = "/getohlcall", method = RequestMethod.POST)
public @ResponseBody List<Trading_Data> getOhlcAll(@RequestBody OhlcRequest ohlcRequest) {
    List<Trading_Data> list;
    list = bankServices.getOhlc(ohlcRequest);
    return list;
}
public List<Trading_Data> getOhlc(OhlcRequest ohlcRequest){
    sessionFactory.openSession();
    session=sessionFactory.openSession();
    Criteria cr = session.createCriteria(Trading_Data.class)
            .setProjection(Projections.projectionList()
                    .add(Projections.property("minPrice"), "minPrice")
                    .add(Projections.property("maxPrice"), "maxPrice")
                    .add(Projections.property("closingPrice"), "closingPrice")
                    .add(Projections.property("prevClosing"), "prevClosing"))
            .setResultTransformer(Transformers.aliasToBean(Trading_Data.class));

    List<Trading_Data> list = cr.list();
    return list;

}
public class Trading_Data  {
@Entity
@Table
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class Trading_Data  {

@Id
@Column
@JsonView(View.Summary.class)
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;

@Column
@JsonView(View.Summary.class)
private String stockCode;

@Column
private long maxPrice;

@Column
private long minPrice;

@Column
private long closingPrice;

@Column
private long prevClosing;

@Column
@JsonView(View.Summary.class)
private String eDate;

public long getId() {
    return id;
}

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

public String getStockCode() {
    return stockCode;
}

public void setStockCode(String stockCode) {
    this.stockCode = stockCode;
}

public long getMaxPrice() {
    return maxPrice;
}

public void setMaxPrice(long maxPrice) {
    this.maxPrice = maxPrice;
}

public long getMinPrice() {
    return minPrice;
}

public void setMinPrice(long minPrice) {
    this.minPrice = minPrice;
}

public long getClosingPrice() {
    return closingPrice;
}

public void setClosingPrice(long closingPrice) {
    this.closingPrice = closingPrice;
}

public long getPrevClosing() {
    return prevClosing;
}

public void setPrevClosing(long prevClosing) {
    this.prevClosing = prevClosing;
}

public String geteDate() {
    return eDate;
}

public void seteDate(String eDate) {
    this.eDate = eDate;
}
}
我目前得到的Json数据是

[
{
"id": 0,
"maxPrice": 54,
"minPrice": 58,
"closingPrice": 45,
"prevClosing": 215
}
]
正如您所看到的,我不需要这个api的id,但我可能需要其他api的id

我的问题是:-

  • 是否无法仅返回hibernate查询选择的值(json格式)

  • 例如,我创建了一个pojo类,它有四个属性(maxprice、minprice、prevclosing、closingprice)。我可以用hibernate查询返回的值映射这个pojo类,并以json格式返回给客户机吗


  • 尝试在资源方法中使用“products”。像这样:

    @RequestMapping(value = "/getohlcall", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
    public @ResponseBody List<Trading_Data> getOhlcAll(@RequestBody OhlcRequest ohlcRequest) {
        List<Trading_Data> list;
        list = bankServices.getOhlc(ohlcRequest);
        return list;
    }
    
    @RequestMapping(value=“/getohlcall”,method=RequestMethod.POST,products=MediaType.APPLICATION\u JSON\u value)
    public@ResponseBody List getOhlcAll(@RequestBody-OhlcRequest-OhlcRequest){
    名单;
    list=bankServices.getOhlc(OHLCLRequest);
    退货清单;
    }
    
    您有很多选择,我使用的是gson。我返回我的实体对象,然后将其转换为业务对象,然后使用gson.toJson(object)以JSOND的形式发送。是否有任何工作示例?您需要将gson添加为依赖项,然后在控制器的返回中需要gson.toJson(list);