@generated value - 获取ID的值

时间:2012-12-29 17:08:48

标签: java hibernate annotations

将车辆对象持久保存到数据库时会自动生成ID。如何在不坚持的情况下获得ID的价值?

这是代码:

public class Vehicle{

    @Id
    @GeneratedValue
    int id;
    private int year;
    private String model;
    //getters, setters
}

更新

    public void updateVehicle(Vehicle vehicle) {

        em.getTransaction().begin();
        Vehicle vehicleDB = em.find(Vehicle.class, vehicle.getId());
        vehicleDB.setYear(vehicle.getYear());
        vehicleDB.setModel(vehicle.getModel());
        em.getTransaction().commit();
}

2 个答案:

答案 0 :(得分:6)

您不能,因为它是在持久性时由数据库生成的。在此之前,id未定义。

答案 1 :(得分:-1)

我们无法在保存之前获取它,但简单的解决方案是在保存对象之前,您可以通过选择查询来获取它。