0
TLDR;在休眠状态下切换外键不起作用
我使用的是spring boot和jpa。
我想切换对象的外键,在这种情况下只是切换车辆的类别。
但是,当我尝试这样做,休眠其解释为,如果我试图改变类对象的主键,而不是仅仅开关外键,我得到这个错误
org.hibernate.HibernateException:identifier of an instance of abc.package.mode.Category was altered from 1 to 2
我有一个实体类别,我只用于分类车辆实体对象。
@Entity
public class Category {
@Id
private Long id;
private String name;
}
这是需要分类的车辆类。
@Entity
public class Vehicle {
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator="dish_seq")
private Long id;
private String name;
private Integer price;
@ManyToOne(fetch = FetchType.EAGER, cascade=CascadeType.DETACH)
private Category category;
}
比方说,有3类,
- '轿车'
- '转换'
- '两厢'
如果我有一辆车对象, Nissan- PT76,$ 30000,类别:[id:1,name:Sedan]
当我尝试改变类别手动[ID:2,名称:换股]和坚持它,我得到
org.hibernate.HibernateException:identifier of an instance of abc.package.mode.Category was altered from 1 to 2
我不能从一个现有的对象切换到另一个。我试图在互联网上查看这些信息,但是我无法找到正确的关键字来搜索hibernate中的这种关系,还是根本不允许这种关系?
不,这还不让我改变车辆的类别 – user2049132