使用复合键在 JPA 中构建方法
Build method in JPA with composite key
这是我的带有复合键的实体:
@Entity
@Table(name = "course_ratings")
public class CourseRating {
@EmbeddedId
private CourseRatingKey id;
}
其中 CourseRatingKey
看起来像这样:
@Embeddable
public class CourseRatingKey implements Serializable {
@Column(name = "user_id")
private int userId;
@Column(name = "course_id")
private int courseId;
public CourseRatingKey() {
}
// getters, setters, equals(), hashCode()
}
还有我的 JPA 存储库
@Repository
public interface CourseRatingRepository extends JpaRepository<CourseRating, CourseRatingKey> {
}
我正在尝试构建一种方法,该方法将 return 列出所有 CourseRating
,给定的 courseId
属性 of CourseRatingKey
。以下方法不起作用,因为 JPA 无法识别它:
repository.findAllByIdCourseId(int id);
如何建立我的方法名称来实现我的目标?
我已经通过在存储库中声明此方法解决了我的问题。我有点困惑,因为其他方法无需声明即可工作。
@Repository
public interface CourseRatingRepository extends JpaRepository<CourseRating, CourseRatingKey> {
List<CourseRating> findAllByIdCourseId(Integer id);
}
这是我的带有复合键的实体:
@Entity
@Table(name = "course_ratings")
public class CourseRating {
@EmbeddedId
private CourseRatingKey id;
}
其中 CourseRatingKey
看起来像这样:
@Embeddable
public class CourseRatingKey implements Serializable {
@Column(name = "user_id")
private int userId;
@Column(name = "course_id")
private int courseId;
public CourseRatingKey() {
}
// getters, setters, equals(), hashCode()
}
还有我的 JPA 存储库
@Repository
public interface CourseRatingRepository extends JpaRepository<CourseRating, CourseRatingKey> {
}
我正在尝试构建一种方法,该方法将 return 列出所有 CourseRating
,给定的 courseId
属性 of CourseRatingKey
。以下方法不起作用,因为 JPA 无法识别它:
repository.findAllByIdCourseId(int id);
如何建立我的方法名称来实现我的目标?
我已经通过在存储库中声明此方法解决了我的问题。我有点困惑,因为其他方法无需声明即可工作。
@Repository
public interface CourseRatingRepository extends JpaRepository<CourseRating, CourseRatingKey> {
List<CourseRating> findAllByIdCourseId(Integer id);
}