java - 使用 Hibernate @Column 注释而不使用 getter 和 setters 方法声明

标签 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 模式的用户 Controller 中:

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

然后我收到一个错误

"setUsername(String) is undefined for the type User"

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

我的问题是:

使用 @Entity 注释的这种类型的声明可以使用 get 和 set ,而无需显式声明它们,因此该人所做的事情是正确的并且工作正常,因此问题不是代码,而是另一个问题,例如正确导入库或 Eclipse 配置

或者

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

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

最佳答案

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

关于java - 使用 Hibernate @Column 注释而不使用 getter 和 setters 方法声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45919468/

相关文章:

android - NDK_ROOT 未定义。请在您的环境中定义 NDK_ROOT

java - Eclipse 中的 log4j.xml

java - 如何不回滚以前的方法持久化数据?

java - 为什么 java.util.Calendar 将最小 WEEK_OF_MONTH 值返回为零?

java - 我可以重定向工作线程以在处理过程中执行不同的工作吗?

java - Guice:类或实例级绑定(bind)注释

java - 无法找到给定名称的属性 - Spring Data JPA Projections、Hibernate 和 BaseEntity

java - Spring选择所需的bean实现

java - 如何使用JAVA代码执行多个命令?

java - Java Spring 中的延迟加载异常