在没有 getter 和 setter 方法声明的情况下使用 Hibernate @Column 注释
Using Hibernate @Column annotation without getters and setters methods declaration
这是我第一次接触Hibernate和JPA注解。最近我参与了一个使用 Hibernate ORM 和 MVC 的项目,在 Eclipse IDE 中尝试 运行 时遇到了问题。
假设我有一个像这样的 class 声明:
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;
}
如果我有另一个 class 从这个 class 创建对象,例如,在我的 MVC 模式的用户控制器中:
User admin = new User();
admin.setUsername("Thommas");
然后我得到一个错误
"setUsername(String) is undefined for the type User"
我知道我的 class 中没有明确声明 getter 和 setter 方法。但是这段代码是这样写给别人的。
我的问题是:
这种使用 @Entity 注释的声明类型可以使用 get 和 set 而不显式声明它们,所以这个人所做的是正确的并且工作正常,因此问题不是代码而是另一个类似导入正确库或 Eclipse 配置
或
这是不允许的,我必须声明 getter 和 setter 方法。
我只想知道如果这是正确的并且问题出在我的配置中,可能是该工具没有正确识别注释。谢谢!
此项目使用 Lombok。
您应该将其添加为依赖项并 configure IDE 以识别它。
这是我第一次接触Hibernate和JPA注解。最近我参与了一个使用 Hibernate ORM 和 MVC 的项目,在 Eclipse IDE 中尝试 运行 时遇到了问题。 假设我有一个像这样的 class 声明:
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;
}
如果我有另一个 class 从这个 class 创建对象,例如,在我的 MVC 模式的用户控制器中:
User admin = new User();
admin.setUsername("Thommas");
然后我得到一个错误
"setUsername(String) is undefined for the type User"
我知道我的 class 中没有明确声明 getter 和 setter 方法。但是这段代码是这样写给别人的。
我的问题是:
这种使用 @Entity 注释的声明类型可以使用 get 和 set 而不显式声明它们,所以这个人所做的是正确的并且工作正常,因此问题不是代码而是另一个类似导入正确库或 Eclipse 配置
或
这是不允许的,我必须声明 getter 和 setter 方法。
我只想知道如果这是正确的并且问题出在我的配置中,可能是该工具没有正确识别注释。谢谢!
此项目使用 Lombok。 您应该将其添加为依赖项并 configure IDE 以识别它。