2017-07-28 1 views
0

TLDR;休止状態での外部キーの切り替えが機能していません。

私は春のブートと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; 
} 

ここでは、分類する必要のあるVehicleクラスを示します。

@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つのカテゴリー、

  1. 'セダン'
  2. 'コンバーチブル'
  3. 'ハッチバック'

私は車のオブジェクトを持っている場合は、 Nissan-があると言うことができますPT76、$ 30000、カテゴリ:[id:1、名前:セダン]

私は[:2、名:IDコンバーチブル]に手動でカテゴリを変更しようとすると、それを持続し、私は別の既存のオブジェクトから切り替えることはできません

org.hibernate.HibernateException:identifier of an instance of abc.package.mode.Category was altered from 1 to 2 

を取得します。私はこれをインターネット上で調べようとしましたが、この種の関係を休止状態で検索するための適切なキーワードを見つけることができなかったか、このような関係はまったく許されませんでしたか?

答えて

0

いや、これはまだ私は、車両のカテゴリを変更することはできませんVehicleクラスであなたのカテゴリ]フィールドに

@JoinColumn(name = "category_id", nullable = false) 
+0

を列参照を追加します。 – user2049132

関連する問題