Hibernate/JPA:无法通过反射设置器设置字段值

Geo*_*old 5 java hibernate jpa

我的JPA/Hibernate奥德赛继续......

我正在努力解决这个问题,所以我不得不在我的类中定义原始的@Ids,它使用3个实体字段作为复合键.这似乎让我更进一步,但现在我坚持下去:

javax.persistence.PersistenceException: org.hibernate.PropertyAccessException: could not set a field value by reflection setter of com.example.model.LanguageSkill.stafferId
Run Code Online (Sandbox Code Playgroud)

这是我的复合类:

public class LanguageSkill implements Serializable
{
    @Id
    @GeneratedValue (strategy = GenerationType.IDENTITY)
    @Column(name = "Staffer_ID")
    private Long stafferId;

    @Id
    @ManyToOne(cascade = CascadeType.ALL)
    @MapsId(value = "stafferId")
    private Staffer staffer;

    @Id
    @GeneratedValue (strategy = GenerationType.IDENTITY)
    @Column(name = "Language_ID")
    private Long languageId;

    @ManyToOne
    @MapsId(value= "languageId")
    private Language language;

    @Id
    @GeneratedValue (strategy = GenerationType.IDENTITY)
    @Column(name = "Language_Proficiency_ID")
    private Long languageProficiencyId;

    @ManyToOne
    @MapsId(value= "languageProficiencyId")
    private LanguageProficiency languageProficiency;
}
Run Code Online (Sandbox Code Playgroud)

对于基元和实体,我确实有适当的getter和setter(IDE生成).

这是我的库.我并不完全相信我正在使用一组兼容的持久性库(对烹饪手册的详细介绍如何正确地混合和匹配这些库将受到高度赞赏.)

  • Hibernate 3.5.6-SNAPSHOT
  • hibernate-jpamodelgen 1.1.0.CR1
  • hibernate-validator 3.1.0.GA
  • MySQL 5.1.6
  • jsr250-api 1.0
  • javax.validation validation-api 1.0.0.GA

哇,这很令人沮丧.3天现在全职尝试解决这样的各种问题只是为了基本的ORM.我觉得有缺陷.:-(

Fla*_*oia -1

您必须删除@GeneratedValue注释。