为类得到类java.lang.Integer提供了错误类型的id

时间:2018-03-31 06:01:55

标签: hibernate rest jersey

每次调用getLocation方法

时都会出错
  

错误 - 为类提供了错误类型的ID Expected:class got class java.lang.Integer

@Id
@Column(name = "emi")
public String getEmi() {
    return emi;
}

public void setEmi(String emi) {
    this.emi = emi;
}

@Id
@Column(name = "latitude")
public Double getLatitude() {
    return latitude;
}
public void setLatitude(Double latitude) {
    this.latitude = latitude;
}

@Id
@Column(name = "longitude")
public Double getLongitude() {
    return longitude;
}
public void setLongitude(Double longitude) {
    this.longitude = longitude;
}

这就是在经理类中编写themetjod的方法

public Location getLocation(int id ) {
    session = HibernateUtil.getSessionFactory().openSession();
    session.beginTransaction();
    Location location = (Location) session.get(Location .class, id);
    session.getTransaction().commit();
    session.close();
    return location;
}

2 个答案:

答案 0 :(得分:0)

<input type="text" name='name0' placeholder='0.00' class="form-control"> <input type="text" name='mail0' placeholder='0.00' class="form-control" > 的ID类型错误。您应该已经通过错误消息自己识别了它!

  

为类com.nsbm.entity.Location提供了错误类型的id。预期:类com.nsbm.entity.Location,得到类java.lang.Integer

您应该以可以解决此问题的方式更改session.get()方法调用。我不知道这个方法的逻辑,但为了解决这个问题,我已经指出了你的错误。

session.get()

希望这有帮助!

答案 1 :(得分:0)

您的跟踪器表中只有一个主键,并且您已将每列定义为Id,

您的位置类应如下所示。

@Entity
@Table(name = "tracker")
public class Location {
    @Id
    @Column(name="id")
    public Integer getId(){
        return this.id;
    }
    public void setId(Integer id){
        this.id = id;
    }

    @Column(name = "emi")
    public String getEmi() {
        return emi;
    }

    public void setEmi(String emi) {
        this.emi = emi;
    }

    @Column(name = "latitude")
    public Double getLatitude() {
        return latitude;
    }
    public void setLatitude(Double latitude) {
        this.latitude = latitude;
    }

    @Column(name = "longitude")
    public Double getLongitude() {
        return longitude;
    }
    public void setLongitude(Double longitude) {
        this.longitude = longitude;
    }
}

其他所有事情都很好。

尝试使用此课程。