首页 > 代码库 > JPA错误

JPA错误

1.2016-10-31:

hibernate用注解 一对多 报Could not determine type for错误

技术分享

原因:  接下来继续解决第二个问题:怎么又与集合打交道啦,哎搞个东西真是一波三折啊。那就从集合上找问题啦。到关网论坛一查,原来是这个东西放错地啦,但是一般情况下这样做也不会报错,既然有问题就改下喽:
    @ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE },targetEntity=com.itdcl.agcds.webinfo.model.SysCourse.class)
@JoinTable(name = "SYS_THEACHER_COURSE", joinColumns = { @JoinColumn(name = "THEACHER_ID") }, inverseJoinColumns = { @JoinColumn(name = "COURSE_ID") })
@Fetch(FetchMode.SUBSELECT)
@OrderBy("theacherId")
public List<SysCourse> getCourse() {
return course;
}
  改成下面这样就没事哒:
@ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE },targetEntity=com.itdcl.agcds.webinfo.model.SysCourse.class)
@JoinTable(name = "SYS_THEACHER_COURSE", joinColumns = { @JoinColumn(name = "THEACHER_ID") }, inverseJoinColumns = { @JoinColumn(name = "COURSE_ID") })
@Fetch(FetchMode.SUBSELECT)
@OrderBy("theacherId")
private List<SysCourse> course = new ArrayList<SysCourse>();

验证确实有效


2.2016-10-31

技术分享

技术分享

原因:1.实体类中定义了重复的声明

2。技术分享

这里的houseId原先没有被注释,就一直抱这个错,原因其实是,创建DAO层对象时抛出异常,而不是实体类映射抛异常

 

 3.2016-11-01技术分享

原因:注解只能加在声明上,如在get方法上注解就会报这个错

技术分享

4.2016-11-01

技术分享

原因:把注解加在了get方法上,把注解加在声明上就不会报错

技术分享

 5.2016-11-01

技术分享

原因;把注解加在了声明上,就没办法进行映射,感觉有时候要加get方法上有时候要加声明上,之所以这种感觉是因为JPA的注解规范要一致

1.有时候要加在声明上是因为继承一个类里面的注解都是在声明上

2.需要加在方法上,因为这个类没有继承,但是为什么加在声明上就不行还不清楚

技术分享

6.2016-11-01

技术分享

 

JPA错误