Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
日食JPA-@OneToMany/@ManyToOne_Jpa_Eclipselink - Fatal编程技术网

日食JPA-@OneToMany/@ManyToOne

日食JPA-@OneToMany/@ManyToOne,jpa,eclipselink,Jpa,Eclipselink,我正在使用Java8、EE7、NetBeans8.0.2、EclipseLink 2.5.2和Derby 最初,我的实体类是由NetBeans为我创建的,当涉及外键时,NetBeans可能默认定义关系的双方。最近我做了一系列研究来更好地理解这一点,并优化了类,使其在非拥有方无法维护时保持单向关系,并在不需要时消除级联 在重建之后(没有编译错误),我无法让它运行,因为我不理解与我的代码相关的错误 Caused by: Exception [EclipseLink-7154] (Eclipse Pe

我正在使用Java8、EE7、NetBeans8.0.2、EclipseLink 2.5.2和Derby

最初,我的实体类是由NetBeans为我创建的,当涉及外键时,NetBeans可能默认定义关系的双方。最近我做了一系列研究来更好地理解这一点,并优化了类,使其在非拥有方无法维护时保持单向关系,并在不需要时消除级联

在重建之后(没有编译错误),我无法让它运行,因为我不理解与我的代码相关的错误

Caused by: Exception [EclipseLink-7154] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.ValidationException
Exception Description: The attribute [clubCourseList] in entity class [class com.clubscores.entity.Course] has a mappedBy value of [COURSE] which does not exist in its owning entity class [class com.clubscores.entity.ClubCourse]. If the owning entity class is a @MappedSuperclass, this is invalid, and your attribute should reference the correct subclass.
在示例中,Course在DB“ID”中定义了一个自动生成的字段,ClubCourse定义了两个外键“CLUB”和“Course”,这样每个俱乐部都可以与许多高尔夫球场相关。课程不会映射回DB中的ClubCourse,但在这种情况下,我将在代码中维护这种关系

球场:定义高尔夫球场

@OneToMany(mappedBy = "COURSE")
private List<ClubCourse> clubCourseList;
如果我将ClubCourse中的“course”属性重命名为其他属性,并相应地调整mappedBy,那么错误只会转移到其他表中的另一个关系


此定义是否有错误,或者是什么原因导致此错误?

您指定了
mappedBy=“COURSE”
,但您的字段名是
COURSE
。这是区分大小写的。请注意,
mappedBy
需要字段名,而不是列名。只需更改为
mappedBy=“course”
,它应该可以工作。

我以前看到过,但我实体中的许多地方都是大写的,我在JPA规范中没有看到任何内容。我假设JPQL区分大小写,但mappedBy不区分大小写。太多的变化和太多的深夜,我想:-)谢谢你这么快的帮助!!
@JoinColumn(name = "COURSE", referencedColumnName = "ID")
@ManyToOne(optional = false)
private Course course;