Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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

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
Hibernate 如何修复和/或优化spring jpa查询方法的这个实现?_Hibernate_Jpa_Spring Data Jpa_Mapping_Bidirectional - Fatal编程技术网

Hibernate 如何修复和/或优化spring jpa查询方法的这个实现?

Hibernate 如何修复和/或优化spring jpa查询方法的这个实现?,hibernate,jpa,spring-data-jpa,mapping,bidirectional,Hibernate,Jpa,Spring Data Jpa,Mapping,Bidirectional,我试图从定义为多通关系的JoinColumn的键字段实现一个jpa查询方法 这是我正在使用的应用程序的一部分,使用Spring5和JPA2.1版本与Maven一起构建 模式的预期行为:“A”实体(主键=A_id)必须由“B”实体(主键=B_id)拥有,其中B可以拥有A中的多个条目。从数据库的角度来看,我需要将外键B_id存储在实体中,但不是相反 class A { @id Long a_id; @ManyToOne(optional = false) B b; } class B

我试图从定义为多通关系的JoinColumn的键字段实现一个jpa查询方法

这是我正在使用的应用程序的一部分,使用Spring5和JPA2.1版本与Maven一起构建

模式的预期行为:“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;

}
A类{
@身份证
长id;
@多通(可选=假)
B B;
}
B类{
@身份证
长b_id;
@OneToMany(mappedBy=“b_id”,cascade=CascadeType.ALL)
@短暂的
私人职业;
}
//我能对这个模型做些修正或简化吗

//现在我尝试使用查询方法提取所有具有特定b_id//的A条目

ARepository extends JpaRepository<A, Long> { 
    Optional<List<A>> findByB_id(Long B_id);
}
ARepository扩展了JpaRepository{
可选的findByB_id(长B_id);
}
这是我用这种方法得到的错误:

Error: Unable to locate Attribute with the the given name [B_id] on this ManagedType [<package_path>.A]
错误:无法在此ManagedType[.A]上找到具有给定名称[B_id]的属性

mappedBy
引用了您的示例中的反向关系
b
而不是
b\u id

所以改变

@OneToMany(mappedBy = "b_id", cascade = CascadeType.ALL)

@OneToMany(mappedBy = "b", cascade = CascadeType.ALL)