嗨,我是这个世界的新手。 我正在使用 spring jpa hibernate 制作自己的应用程序。 我有一个实体类。它通常有效,但它会重复属性。 我的代码如下所示:
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.validation.constraints.NotNull;
@Entity
public class Event {
@Id
@GeneratedValue
private Integer id;
public Integer getId() {
return id;
}
@Column(nullable = false)
public void setId(Integer id) {
this.id = id;
}
/*------------------------------ title ------------------------*/
private String title;
@Column(nullable = false)
public String getTitle() {
return title;
}
@Column(nullable = false)
public void setTitle(String title) {
this.title = title;
}
/* [Note] I have two extra ids : event_id, eventId
- so these are not the case of the duplication. */
/*------------------- event_id -----------------------------*/
private String event_id;
public String getEvent_id() {
return event_id;
}
public void setEvent_id(String event_id) {
this.event_id = event_id;
}
/*-------------- eventId -------------------------------------*/
@Column(unique = true)
private String eventId;
public String getEventId() {
return eventId;
}
public void setEventId(String eventId) {
this.eventId = eventId;
}
/*------------------------------ publishedDate ------------------------------------------*/
private String publishedDate;
public String getPublishedDate() {
return publishedDate;
}
@Column(nullable = false)
public void setPublishedDate(String publishedDate) {
this.publishedDate = publishedDate;
}
/*--------------------------------- endTime -----------------------------------*/
private String endTime;
public String getEndTime() {
return endTime;
}
@Column(nullable = false)
public void setEndTime(String endTime) {
this.endTime = endTime;
}
/*-------------------------------- user ------------------------------------------*/
@ManyToOne
@JoinColumn(name="user_id")
private User user;
public User getUser() {
return user;
}
@Column(nullable = false)
public void setUser(User user) {
this.user = user;
}
然后当我检查 JPA 图时,它有几个属性重复。 我添加了我的 JPA 图图像(红色部分是重复的)
这是我使用 Java 编程的第一个应用程序。 所以请理解,即使我阅读了 spring jpa 的文档, 很难弄清楚我在代码中到底做错了什么。 有任何想法吗?提前致谢。
最佳答案
问题是 JPA 需要字段级注释或访问器(getters/setters)注释。但是,您同时使用两者,这基本上是不允许的。从访问器中删除所有他的注释,只将它们放在字段上。
关于 Java 编程(样式)的小提示将您的字段放在类的顶部而不是访问器之间。
@Entity
public class Event {
@Id
@GeneratedValue
private Integer id;
@Column(unique = true)
private String eventId;
private String event_id;
@Column(nullable = false)
private String title;
@Column(nullable = false)
private String publishedDate;
@Column(nullable = false)
private String endTime;
@ManyToOne
@JoinColumn(name="user_id")
@Column(nullable = false)
private User user;
// Getters / Setters omitted
}
去掉访问器的注解,你真的要设置id
吗?我预计不会,因此您可能想要删除 setId
方法。
关于java - Spring JPA hibernate 副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31072089/