这是由于
Child使用字段访问(由于在字段上放置了注释)这一事实引起的,因此,当您调用任何一种方法时,Hibernate都会简单地初始化代理。
如果将注释移到属性,它将按预期工作。
从JPA 2.0(Hibernate 3.5)开始,您可以用细粒度的方式对其进行配置:
@Access(AccessType.FIELD) // Default is field accessclass Child { private Integer id; @Column(name = "name") private String name; @Access(AccessType.PROPERTY) // Use property access for id @Id @Column(name = "id", unique = true, nullable = false) public Integer getId() { ... } ... }


