确保JPA使用setter

时间:2017-03-17 09:56:17

标签: java jpa orm entity setter

我使用JPA作为我的实体类,但JPA并没有为我的参数执行setter。我上了这堂课:

@Entity
public class Groep implements Serializable, IGroep {

  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private int groepID;
  private String naam;
  @Column(name = "MOTIVATIE", length = 1000)
  private String motivatie;

  protected Groep(){

  }

  @Override
  public String getMotivatie() {
     return motivatie;
  }

  public void setMotivatie(String motivatie) {
    System.out.println("domein.Groep.setMotivatie()");
    this.motivatie = motivatie;
  }
}

但是我从来没有看过system.out ......有什么问题?

1 个答案:

答案 0 :(得分:2)

访问类型取决于您放置注释的位置。 您已将它们放在实例变量上,因此持久性提供程序将尝试通过反射直接访问它们。

如果您使用hibernate作为持久性提供程序,则只需以这种方式定义@Id:

  

作为JPA提供者,Hibernate可以自省两个实体属性   (实例字段)或访问者(实例属性)。默认情况下,   @Id注释的位置提供了默认的访问策略。

请记住,您应该在所有实体的注释放置策略中保持一致。