我有一个User
班级和一个Recipe
班级。 Recipe
类有一个字段,显示哪个用户拥有什么食谱。用户有一个id。我认为这应该是ManyToOne
连接,因为一个用户可以有很多食谱。我的问题是,我如何在Java spring中编写代码,通过这些注释,我发现自己有点迷失。这是我提出的,但它没有用。
@Entity
public class Recipe {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int recipe_id;
private String name;
@JoinColumn(name="user_id" , table="User")
private int user_id;
private LocalDate dateUploaded;
private String description;
public int getId() {
return recipe_id;
}
public void setId(int recipe_id) {
this.recipe_id = recipe_id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getUser() {
return user_id;
}
public void setUser(int user_id) {
this.user_id = user_id;
}
public LocalDate getDateUploaded() {
return dateUploaded;
}
public void setDateUploaded(LocalDate dateUploaded) {
this.dateUploaded = dateUploaded;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
用户类
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int user_id;
private String firstName;
private String lastName;
private String userName;
private String password;
public User(int user_id, String firstName, String lastName, String userName, String password, int[] favoriteRecipes, int[] myRecipes) {
this.user_id = user_id;
this.firstName = firstName;
this.lastName = lastName;
this.userName = userName;
this.password = password;
}
public int getId() {
return user_id;
}
public void setId(int user_id) {
this.user_id = user_id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
答案 0 :(得分:0)
You should add one more field in user table that is getRecieps and add this annotation.
@OneToMany(cascade = CascadeType.ALL)
@JoinTable(name = "USER_RECEIPE", joinColumns = { @JoinColumn(name = "user_id") }, inverseJoinColumns = { @JoinColumn(name = "receipe_id") })
public Set<receipe> getReceipes() {
return this.receipes;
}
public void setreceipes(Set<receipe> receipes) {
this.receipes= receipes;
}
答案 1 :(得分:0)
据我所知,您正试图在Recipe
和User
之间实现ManyToOne关系。
您需要做的就是在
中的user_id
字段中添加以下注释
食谱类
@ManyToOne(optional = false)
@JoinColumn(name="user_id")
private int user_id;
试试这个,如果你仍然遇到问题,请告诉我。