使用Hibernate @Column注释而不使用getter和setter方法声明

时间:2017-08-28 12:48:17

标签: java eclipse jpa model-view-controller hibernate-annotations

这是我第一次接触Hibernate和JPA注释。最近我参与了一个使用Hibernate ORM和MVC的项目,并且我在Eclipse IDE中尝试运行时遇到了问题。 假设我有这样的类声明:

User.java

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

import lombok.Data;

@Data
@Entity
@Table(name = "user")
public class User {

    @Id
    @GeneratedValue
    @Column(name="id_user") 
    private int id_user;

    @Column(name="name") 
    private String name;

    @Column(name="email") 
    private String email;

    @Column(name="accesslevel")
    private int accesslevel;

    @Column(name="username")
    private String username;
}

如果我有另一个类从这个类创建对象,例如,在我的MVC模式的用户控制器中:

User admin = new User();
admin.setUsername("Thommas");

然后我收到错误

  对于User"

类型,

" setUsername(String)未定义

我知道getter和setters方法没有在我的类中显式声明。但是这段代码是以这种方式为另一个人编写的。

我的问题是:

使用@Entity注释的这种类型的声明可以使用get' s并且在没有明确声明的情况下设置,所以这个人做了什么是正确的并且工作正常,因此问题不是&# 39;代码,但另一个像正确导入库或Eclipse配置

OR

这是不允许的,我必须声明getter和setter方法。

我只是想知道如果这是正确的,问题出在我的配置中,也许该工具无法正确识别注释。谢谢!

1 个答案:

答案 0 :(得分:2)

此项目使用Lombok。 您应该将其添加为依赖项,并configure IDE来识别它。