我想实现从定义为一个多对一关系的JoinColumn的关键领域中的JPA查询方法。
这是一个应用程序,我的工作,与Maven使用Spring 5和JPA 2.1版本内置的一部分。
方案的预期的行为:“A”实体(主键= A_ID)必须由“B”实体(主键= B_ID),其中B可以自己在A.从数据库的角度来看一个以上的条目所拥有的,我需要外键B_ID存储在一个实体,而不是周围的其他方式。
class A {
@id
Long a_id;
@ManyToOne(optional = false)
B b;
}
class B {
@id
Long b_id;
@OneToMany(mappedBy = "b_id", cascade = CascadeType.ALL)
@Transient
private Set<Jobs> jobs;
}
//是否有我可以对这个模型的任何修改或简化?
//现在我想提取所有的参赛作品,其中有一个特定的B_ID //使用查询方法
ARepository extends JpaRepository<A, Long> {
Optional<List<A>> findByB_id(Long B_id);
}
这是错误我用这种方法获得:
Error: Unable to locate Attribute with the the given name [B_id] on this ManagedType [<package_path>.A]
mappedBy
引用的反比关系是你的榜样b
不b_id
。
所以变化
@OneToMany(mappedBy = "b_id", cascade = CascadeType.ALL)
至
@OneToMany(mappedBy = "b", cascade = CascadeType.ALL)