如何在Spring JPA中访问嵌入式类的字段

约翰·杜(John Doe):

我有一个带有2个带有@Id标记的字段的类

 @Entity
 @Table(name="baspas")
class BasPas
  @Id
  @ManyToOne
  @JoinColumn(name="bas_id", referenceColumnName="id")
  private Bas basboard;

  @Id
  @ManyToOne
  @JoinColumn(name = "pas_id", referenceColumnName = "id")
  private pas pasboard;
 //

我将它们重构为Embedded类,并在BasPasPK类中拉出了上述两个@Id字段。这将使我能够创建一个扩展JPARepository接口的接口。

   @Embeddable
   class BasPasPK {

      @ManyToOne
      @JoinColumn(name="bas_id", referenceColumnName="id")
      private Bas basboard;

      @ManyToOne
      @JoinColumn(name = "pas_id", referenceColumnName = "id")
      private pas pasboard;
     //

   }

由于这两个字段都用@ManyToOne注释,因此关系的另一端在这些字段中以“ mappedBy”列出。例如

   @Entity 
   class Another{
    .
    .

    @OneToMany(mappedBy = "basboard" cascade = CascadeType.ALL)
    private set<BasPas> basPas;
    .
    .
    .
}

但是重构之后如何访问该类的另一端。

我的意思是我在执行mvn spring-boot:run时遇到以下异常

org.hibernate.AnnotationException:mappedBy通过引用未知目标实体属性

然后我要做的就是在

 @Entity
class Another{
        .
        .

        @OneToMany(mappedBy = "basboard" cascade = CascadeType.ALL)
        private Set<BasPas> basPas;
        .
        .
        .
    }

对此

 class Another{
    .
    .

    @OneToMany(mappedBy = "bas" cascade = CascadeType.ALL)
    private set<BasPasPk> basPas; //changed the classname in angle brackets to BasPasPk
    .
    .
    .
}

但是之后,我开始出现以下异常。

org.hibernate.AnnotationException:使用@OneToMany或@ManyToMany定位未映射的类。

如何解决此问题,我的意思是在提取嵌入式类中的这两个属性后如何在另一个类中访问这些属性。

塞林德克:

尝试这种方式:(假设您实体中BasPasPK属性的名称为id

 @Entity
class Bas{
        .
        .

        @OneToMany(mappedBy = "id.basboard" cascade = CascadeType.ALL)
        private Set<BasPas> basPas;
        .
        .
        .
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在类型脚本中访问嵌入式输入字段

Spring Data JPA通过嵌入式密钥中的多个字段查找

如何在Go中读取嵌入式字段?

Spring Data JPA 接口和基于类的投影不适用于嵌入式键的 DISTINCT 字段

如何访问POST请求中的嵌入式键值

如何访问Pandas DataFrame中的嵌入式json对象?

如何访问网页中的嵌入式pdf文件

如何在discord.py嵌入式邮件中对齐字段

如何在MongoDB的数组字段中查询和删除嵌入式对象?

如何在数组中的嵌入式文档中指定/投影字段?

如何访问嵌入式附件?

如何访问嵌入式组件的PropType?

如何在C ++中嵌入Chromium嵌入式框架

如何在嵌入式模式下从 Drill 访问 HDFS?

如何在Spring Boot中为嵌入式Jetty设置处理程序?

如何在Spring Boot和嵌入式Tomcat中设置mod_reqtimeout?

如何在Spring Boot中设置嵌入式tomcat的日志记录级别?

如何在嵌入式数组mongodb中查询嵌入式文档

如何从symfony 2控制器中删除嵌入式表单中的表单字段

Spring Data Mongo-在嵌入式文档中应用唯一的组合字段

如何在MongoDB中的嵌入式文档中获得同一级别的所有字段

如何在嵌入式tomcat中添加ServletContextListener

如何在嵌入式文档中查找某个元素

如何在WKWebView中启用嵌入式YouTube视频?

如何在 MongoDb 中查询嵌入式文档?

如何在Android嵌入式卡中设置setText()

如何在嵌入式CSS中编写a:hover?

如何在嵌入式函数中存储值

如何在jQuery中调用嵌入式函数?