`

JPA一对多的SQL语法的写法

    博客分类:
  • JPA
阅读更多
1.前提Scene.java:一个Scene对多个SceneVideo
@OneToMany(mappedBy = "scene", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private Set<SceneVideo> sceneVideoCollection = new HashSet<SceneVideo>();

 

2.SQL语句不正确的写法:
String strQuery = "select distinct s from Scene s ";
if (quality != null && !"".equals(quality)){
   strWhere = " where s.sceneVideoCollection.videoUrl like '%"+ quality +"%' or s.sceneVideoCollection.playlistFile like '%"+ quality +"%'";
}
错误的原因是:一个Scene对多个SceneVideo,而这里用sceneVideoCollection.videoUrl肯定是不对啦,这里是对多个sceneVideoCollection的,那它的videoUrl就对不少号啦!!!

 

3.正确的SQL写法:
String strQuery = "select distinct s from Scene s inner join s.sceneVideoCollection sv";
if (quality != null && !"".equals(quality)){
   strWhere = " where sv.videoUrl like '%"+ quality +"%' or sv.playlistFile like '%"+ quality +"%'";
}

 

分享到:
评论

相关推荐

    JPA一对一,一对多,多对多关系映射

    本篇将深入探讨JPA中的一对一(OneToOne)、一对多(OneToMany)以及多对多(ManyToMany)关系映射。 ### 1. JPA 一对一(OneToOne)关系映射 **概念**:一对一关系意味着两个实体之间存在唯一的关联,一个实体...

    SpringBoot+JPA+Freemarker 生成动态SQL

    通过这种方式,SpringBoot+JPA+Freemarker能够帮助我们构建一个强大的动态SQL生成系统,它允许我们在不硬编码SQL的情况下,根据业务需求灵活地构建复杂的查询。这种方式提高了代码的可读性和可维护性,减少了因SQL...

    11_传智播客JPA详解_JPA中的一对多延迟加载与关系维护

    例如,一个学生可以属于多个班级(多对一),而一个班级可以包含多个学生(一对多)。在JPA中,我们通过在实体类上使用`@OneToMany`注解来定义这种关系。这个注解允许我们将一个实体的集合属性映射到另一个实体的...

    JPA多对多Demo

    本示例中的“JPA多对多Demo”是一个具体的实践案例,展示了如何在JPA中实现多对多关联关系,以及对应的增删改查方法。 多对多关联是现实世界中常见的一种关系类型,例如教师和学生之间的关系,一个教师可以教多个...

    11_JPA详解_JPA中的一对多延迟加载与关系维护.zip

    本资料主要探讨的是JPA中的一对多关系以及延迟加载机制,这两部分是JPA使用中的关键概念。 **一对多关系** 在关系数据库中,一对多关系是最常见的一种关联类型。例如,一个部门可以有多名员工,而每个员工只能属于...

    JPA双向一对多实例配置

    JPA中双向一对多实体Bean的属性配置,包括延迟加载,级联删除等

    spring boot+jpa+sqlserver+bootstrap

    在现代Web开发中,Spring Boot、JPA、SQL Server和Bootstrap是四个非常关键的技术组件,它们共同构建了一个高效、易用且功能强大的开发环境。让我们深入探讨一下这四个技术在实际项目中的应用和整合。 1. **Spring ...

    jpasql.rar

    综上所述,`jpasql.rar`这个压缩包内容涉及了使用JPA进行数据库操作的Java应用程序。`JpaSqlService`实现了业务逻辑,而`JpaSqlTest`则提供了对其功能的验证。这两个文件共同构成了一个基于JPA的简单数据访问层,...

    JPA基础语法资料--JPA_Basic

    JPA支持一对一、一对多、多对一和多对多的关系映射。通过`@OneToOne`、`@OneToMany`、`@ManyToOne`、`@ManyToMany`等注解实现。例如,一个用户可能有多个订单: ```java @Entity public class User { // ... @...

    JPA 动态查询 Criteria JPQL 语法详解

    JPA 动态查询 Criteria JPQL 语法详解 JPA(Java Persistence API)是一种Java应用程序接口,用于访问、管理和持久化数据。JPA 2.0 引入了 Criteria API,它提供了一种动态查询机制,允许开发者在运行时构建查询...

    JPA中的多对多双向关联实体定义与注解设置

    在Java Persistence API (JPA) 中,多对多(ManyToMany)关系是表示两个实体之间复杂关联的一种方式。这种关联允许一个实体实例可以与多个其他实体实例相关联,反之亦然。例如,一个学生可以选修多门课程,一门课程...

    JPA一对一关系实例配置

    本实例将详细探讨JPA中的一对一(OneToOne)关系配置,以及如何在实际项目中实现。 一对一关系在数据库设计中意味着两个实体之间存在一个实体对应另一个实体的唯一关系。例如,一个人可能只有一个护照,或者一个...

    EJB3JPA调用原生SQL和函数存储过程[归类].pdf

    本篇主要探讨如何在EJB3与JPA环境中调用原生SQL查询以及如何创建和使用Oracle的存储过程。 1. EJB3与JPA调用原生SQL EJB3引入了JPA作为标准的数据持久化框架,允许开发者使用JPQL(Java Persistence Query ...

    13_jpa多对多双向关联实体定义与注解

    "13_传智播客JPA详解"系列教程涵盖了JPA的诸多方面,而"13_传智播客JPA详解_JPA中的多对多双向关联实体定义与注解设置"这一部分则专门聚焦于多对多关联的实践。 在关系型数据库中,多对多关联是最为复杂的一种关系...

    rsql-jpa-specification:Java库将RSQL转换为Spring Data JPA规范和QueryDSL谓词

    rsql-jpa规范 将RSQL查询转换为org.springframework.data....Maven对rsql-jpa-spring-boot-starter的依赖 &lt; groupId&gt;io.github.perplexhub &lt; artifactId&gt;rsql-jpa-spring-boot-starter &lt; version&gt;X.X.X 将JpaS

    java + spring boot +jpa 拦截器分库分表demo

    Spring Data JPA是Spring对JPA的扩展,提供了更丰富的功能,包括自动Repository生成、查询方法等。 在Spring Boot项目中集成JPA,首先需要在`pom.xml`或`build.gradle`中添加相应的依赖。接下来,创建实体类...

    JPA例子(里面有一对一,一对多的例子)

    JPA的几个例子,一对一,一对多。 @ManyToOne(cascade = {CascadeType.ALL}, fetch = FetchType.LAZY) @JoinColumn(name = "personid", unique = false, nullable = true, insertable = true, updatable = true) ...

    JPA注解 和hibernate 建表

    Hibernate是一个基于JPA规范的ORM(Object-Relational Mapping)框架,它提供了对数据库的访问和操作功能。Hibernate可以将Java对象转换为对应的数据库表记录,从而实现了数据的持久化。 四、Hibernate.cfg.xml文件...

    10_JPA详解_JPA中的一对多双向关联与级联操作.zip

    本资料包"10_JPA详解_JPA中的一对多双向关联与级联操作.zip"聚焦于JPA中的一个重要概念——一对多双向关联及其级联操作。以下是对这一主题的详细阐述。 **一对多关联** 在关系数据库设计中,一对多关联是最常见的...

Global site tag (gtag.js) - Google Analytics