有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Jquery Jtable显示具有多个One属性的记录(SpringHibernate)

我被以下问题困扰着

我使用hibernate和spring创建了以下对象:

public class Employee
{
    @Id @GeneratedValue
    @Column(name = "id")
    String id;
    @Column(name = "name")
    String name;
    @ManyToOne
    @JoinColumn(name = "city")
    City city;

     //gets and sets...
}

还有这个

public class City
{
   @Id @GeneratedValue
   @Column(name = "id")
   String id;
   @Column(name = "name")
   String city;

   //gets and sets...
}

我需要用jTable显示员工记录。我正在这样做:

$('#empleados').jtable(
{
   title: 'Employees',
   sorting: true,
   selecting: true,
   actions: 
   {
      listAction: 'getEmployeesTable',
      createAction: 'addEmployee',
      updateAction: 'updateEmployess',
      deleteAction: 'deleteEmployee'
   },
fields: {
id:{
key: true,
list: false

},

name: {
title: "Name"
},
city: {
title: "City",
options: "getCities",
display:function(data){
return data.record.city.name;
}

}
}

}
});

我在创建和编辑表单上正确地看到了列City值和组合值,但是当我想要保存或更新记录时,由于城市名称和城市对象之间的映射,我出现了一个错误。 我找到了一些示例,但只将多对一属性的id放在其中,而不是整个对象


共 (1) 个答案

  1. # 1 楼答案

    尝试:

    public class Employee
    {
        @Id @GeneratedValue
        @Column(name = "id")
        Long id;
        @Column(name = "name")
        String name;
        @ManyToOne(cascade = CascadeType.ALL)
        @JoinColumn(name = "city_id")
        City city;
    }
    
    public class City
    {
       @Id 
       @GeneratedValue
       @Column(name = "city_id")
       Long id;
       @Column(name = "city_name")
       String city;
    
       //gets and sets...
    }