2017-03-01 108 views
0

我在休眠插入有一些問題。休眠插入連接和外鍵

假設我有2個實體

@Entity 
public class User{ 
    @Id 
    @GeneratedValue 
    int user_id; 

    String name; 

    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) 
    @JoinColumn(name = "utente_id") 
    list<City> cities; 
} 

@Entity 
public class City{ 
    int user_id 
    int city_id 
} 

,如果我嘗試創建一流的用戶,並添加城市的名單,但是當我嘗試保存,收到此錯誤:

Caused by: java.sql.SQLException: Foreign key constraint violation occurred

這是因爲user_id在類City必須等於user_idUser,但休眠首先插入,然後更新。 我如何旋轉?

+0

在'City'類中顯示您的註釋。以及您獲得Exception的代碼示例。看來你在這裏需要'ManyToMany'關係。 –

回答

0

先嚐試將用戶對象保存到數據庫。 只有在你堅持你可以得到user_id的生成值。

然後,您可以創建City對象,設置user_id字段並保留它。