![](/img/trans.png)
[英]Hibernate uploads data with @OneToMany and @ManyToOne but the foreign key remains Null
[英]@ManyToOne @OneToMany Mapping , foreign key is null
@Entity
@Data
@NoArgsConstructor
public class Offer {
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name = "user_id", referencedColumnName = "id")
private User user;
}
@Data
@EqualsAndHashCode
@Entity
@NoArgsConstructor
public class User {
@OneToMany(mappedBy = "user",cascade = CascadeType.ALL,fetch=FetchType.LAZY)
private Set<Offer> offers = new HashSet<Offer>();
}
如果表 User 和 Offer.user_id 列中的映射正確,請提供幫助,該列具有 null 值....:(
我不確定這些是否只是實體的一部分,但為了讓實體擁有一個 id,您需要為其提供一個並將相關字段注釋為 @Id。 我也使用@GeneratedValue(strategy = GenerationType.IDENTITY) 所以每個表都會得到它自己的id(由Hibernate生成,當你保存一個新實體而不是全局id時你不提供id,否則假設你添加一個提供,您獲得值為 x 的 id,然后添加新用戶,您獲得值為 x+1 的 id,依此類推...
@Entity
@Data
@NoArgsConstructor
public class Offer {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name = "user_id", referencedColumnName = "id")
private User user;
}
@Data
@EqualsAndHashCode
@Entity
@NoArgsConstructor
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@OneToMany(mappedBy = "user",cascade = CascadeType.ALL,fetch=FetchType.LAZY)
private Set<Offer> offers = new HashSet<Offer>();
}`
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.