java - Spring JPA hibernate 副本

标签 java hibernate spring-mvc jpa annotations

嗨,我是这个世界的新手。 我正在使用 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 图图像(红色部分是重复的)

enter image description here

这是我使用 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/

相关文章:

java - 反序列化二进制文件时出现堆栈溢出错误

java - 使用 Eclipse 调试 RMI 应用程序

java - Java如何维护字符串的格式

java - Hibernate Id 序列在具有两列序列的实体中导致 null

java - 停止 Spring MVC 获取 LazyLoad 数据

java - 警告 : No mapping found for HTTP request with URI [ ] in DispatcherServlet with name

java - 没有足够的字节来使用 Astyanax 客户端的复合列读取组件的值

java - Hibernate 占位符被忽略

java - Flyway + h2内存数据库+ hibernate +测试导致表不存在

java - 通过 jdbctemplate 在表中插入记录时如何获取自动增量 ID