簡體   English   中英

使用Hibernate @Column注釋而不使用getter和setter方法聲明

[英]Using Hibernate @Column annotation without getters and setters methods declaration

這是我第一次接觸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控制器中:

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

然后我得到一個錯誤

“類型用戶未定義setUsername(String)”

我知道在我的課程中沒有明確聲明getters和setters方法。 但是此代碼是通過這種方式為另一個人編寫的。

我的問題是:

使用@Entity批注的這種聲明類型可以使用get和set's而不顯式聲明它們,因此此人的所作所為是正確的並且可以正常工作,因此問題不在於代碼,而是諸如正確導入庫或Eclipse配置之類的問題。

要么

不允許這樣做,我必須聲明getters和setters方法。

我只想知道這是否正確,而問題出在我的配置中,也許該工具無法正確識別注釋。 謝謝!

該項目使用Lombok 您應該將其添加為依賴項,並配置IDE以識別它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM