为了账号安全,请及时绑定邮箱和手机立即绑定

来自 Hibernate Entity 的 For 循环未按预期返回结果

来自 Hibernate Entity 的 For 循环未按预期返回结果

泛舟湖上清波郎朗 2021-06-02 17:36:42
我在 Hibernate 4.3.5 中定义了一个实体,我正在尝试获取控制器中的值,以便我可以在 JSON 响应中显示它。但是我的 for 循环内容以某种不同的方式打印,如下所示:System.out.println(emp.toString()+"\n");代码中的结果:abc.cde.myproject.orm.Employee@599eededabc.cde.myproject.orm.Employee@75ffa715abc.cde.myproject.orm.Employee@152beb23abc.cde.myproject.orm.Employee@1f2f7ce1abc.cde.myproject.orm.Employee@484ca3df这是我使用循环的控制器代码:@RequestMapping(value="/get_employee_details", method=RequestMethod.GET)    public String updateemployee    (            @RequestParam(value="emp_id", defaultValue="0") Integer emp_id,            @RequestParam(value="name", defaultValue="") String name    )     {        String responseJSON = null;        boolean getStatus = true;               try {            EmployeeDao employeeDao = (EmployeeDao)context.getBean("employeeDao");            Employee employee = null;                       List<Employee> empList = employeeDao.findByEmployeeId(emp_id);            if ((empList != null) && (!empList.isEmpty())) {                for(Employee emp : empList){                System.out.println(emp.toString()+"\n");            }            if (getStatus) {                    responseJSON = GenericOrmStatusView.OrmResponseToJsonString(true, 1,"List of Names here", true);                } else {                    responseJSON = GenericOrmStatusView.OrmStatusToJsonString(false, "Update of EMPLOYEE Record Problem!", true);                }            }                               } catch (Throwable th) {            th.printStackTrace();            responseJSON = GenericOrmStatusView.OrmStatusToJsonString(false, th.getMessage(), true);        }        return responseJSON;    }我的员工实体如下:@Entity@Table(name="EMPLOYEE") public class Employee {           public int getEmployeeId() {        return EmployeeId;    }    public void setEmployeeId(int EmployeeId) {        this.EmployeeId = EmployeeId;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }
查看完整描述

2 回答

?
弑天下

TA贡献1818条经验 获得超8个赞

如果您在对象中使用 toString() 而不覆盖 toString() 方法,那么将会打印

<class name of object that you are creating>@<hashcode value in hexadecimal format returned by the hashCode() method of Object class>.

您可以在此处获取有关 toString() 的详细信息

像这样打印:

System.out.println(new ObjectMapper().writeValueAsString(emp));


查看完整回答
反对 回复 2021-06-10
?
SMILET

TA贡献1796条经验 获得超4个赞

您必须在您的 Employee 类中覆盖 toString 以便以您想要的方式打印您的 Employee 实例(例如使用 println )。


@Override

public String toString() {

Gson gson = new Gson();

String json = gson.toJson(this);

return json;

}

您可以使用 Gson 等库将 POJO 格式化为 json 字符串


希望这可以帮助


查看完整回答
反对 回复 2021-06-10
  • 2 回答
  • 0 关注
  • 188 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信