`

Spring Data findOne查有manyToMany情况

 
阅读更多
遇到个奇葩问题:
  • User和Role是多对多关系...查询到一个User...然后getRoles...集合中出现18条一模一样的Role实例(此时数据库中间表中此User只有一个角色)...

@ManyToMany(fetch = FetchType.EAGER, cascade = { CascadeType.PERSIST, CascadeType.MERGE })
@JoinTable(
name = "t_sysmgt_user_role", 
joinColumns = { @JoinColumn(name = "user_id") }, 
inverseJoinColumns = { @JoinColumn(name = "role_id") }
)
private List<Role> roles = new ArrayList<Role>();

  • 1.UserDao 实现了JpaRepository(Spring Data)
  • 2.Hibernate4.3.5
  • 3.Spring Data1.10.1


用的JpaRepository中的findOne就会有这个问题, 然后自己写了个查询方法就OK了
@Query("select u from User u where u.id=?")

User findById(Long userId);
分享到:
评论

相关推荐

    SpringBoot-SpringData-ManyToMany

    在Spring Boot和Spring Data的框架下,`ManyToMany`关系是一种常见的数据库模型,用于表示两个实体之间多对多的关系。这种关系意味着一个实体可以与多个其他实体相关联,反之亦然。例如,用户和角色之间的关系,一个...

    Spring Data JPA从入门到精通

    《Spring Data JPA从入门到精通》是一本深入解析Spring Data JPA的书籍,它以Spring Boot框架为核心,旨在帮助读者全面理解并熟练运用Spring Data JPA进行数据库操作。Spring Data JPA是Spring Framework的一个模块...

    Spring Data JPA入门项目02

    在本项目"Spring Data JPA入门项目02"中,我们将深入探讨如何使用Spring Data JPA进行查询操作,包括排序和分页。Spring Data JPA是Spring Framework的一个模块,它为Java Persistence API (JPA) 提供了一种更加便捷...

    Spring data jpa 中文开发文档

    Spring Data JPA支持多种实体关系,如一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)、多对多(ManyToMany)。通过注解如`@ManyToOne`、`@OneToMany`等,可以轻松地定义和处理这些关系。 **8. 组合...

    Spring Data JPA中文文档[1.4.3].zip

    Spring Data JPA是Java开发中的一个关键框架,它简化了与关系型数据库的交互,特别是基于Java Persistence API (JPA)。这个框架是Spring生态系统的组成部分,为开发者提供了声明式数据访问的方式,允许通过简单的...

    springData-jpa-demo

    Spring Data JPA 是一个强大的框架,它简化了与Java Persistence API (JPA) 的交互,使得在Spring应用程序中处理数据库操作变得更加便捷。本项目“springData-jpa-demo”旨在提供一个示例,帮助开发者理解如何在实践...

    Spring-data-jpa常用教程.pdf

    - 利用 `@ManyToOne`、`@OneToMany`、`@ManyToMany` 等注解来定义实体之间的关系,Spring-data-jpa 支持多种关系类型的映射。 #### 四、Spring-data-jpa 复杂查询支持 除了基本的 CRUD 操作外,Spring-data-jpa ...

    SpringData案例

    3. **查询(Query)**:SpringData支持基于方法名的查询,例如`findAll()`返回所有实体,`findById()`根据ID查找实体。还可以自定义复杂的查询方法,通过`@Query`注解使用JPA的原生SQL或HQL。 **一对一(OneToOne)...

    Spring Data JPA

    比如,如果你有一个名为`findByUsername(String username)`的方法,Spring Data JPA会自动生成对应的SQL(HQL)查询,寻找用户名为`username`的用户。 4. **JPA注解**:除了`@Entity`,还有其他JPA注解,如`@Id`...

    Spring Data JPA Examples 官方源码

    Spring Data JPA支持基于方法名的查询,例如,`findAll()`对应于SQL的`SELECT * FROM table`,`findByUsername(String username)`将自动转换为`SELECT * FROM table WHERE username = ?1`。这种方法极大地减少了...

    spring data jpa

    Spring Data JPA是Spring框架的一个模块,专门用于简化Java持久层的开发,它提供了一种声明式的方式来处理数据库操作,如CRUD(创建、读取、更新和删除)操作。这个框架利用了Java Persistence API (JPA) 和 ...

    spring-data-JPA帮助文档

    通过使用Spring Data JPA,开发者可以快速实现对数据库的基本操作,如增删改查,而无需编写大量的DAO(Data Access Object)和Repository代码。 二、Repository接口 Spring Data JPA的核心是Repository接口,它提供...

    Spring Data JPA文档.zip

    Spring Data JPA是Java开发中的一个强大框架,它简化了持久化层的开发,通过将ORM(对象关系映射)与Spring框架相结合,为开发者提供了简单、高效的数据库操作方式。这个压缩包“Spring Data JPA文档.zip”包含了...

    spring-data-jpa-examples-master.rar_spring data jpa

    【标题】"spring-data-jpa-examples-master.rar_spring data jpa" 提供了一个关于Spring Data JPA的实际应用示例,这是一个广泛使用的Java框架,它简化了与数据库的交互,特别是通过JPA(Java Persistence API)进行...

    学习使用 Spring Data JPA 对 MySQL 进行操作.zip

    8. **多表关联**:理解 One-to-One、One-to-Many、Many-to-One、Many-to-Many 等关联关系,以及如何使用 `@OneToOne`、`@OneToMany`、`@ManyToOne`、`@ManyToMany` 注解来配置。 9. **懒加载与急加载**:了解 JPA ...

    Spring Security+Spring Data Jpa如何进行安全管理

    它能够与多种技术集成,包括 Spring Data Jpa,后者是 Spring 框架的一部分,用于简化数据库操作。在本文中,我们将探讨如何将 Spring Security 与 Spring Data Jpa 结合,以实现应用程序的安全管理。 首先,我们...

    JavaEE就业班(夜光)③:SpringData开发.docx

    Spring Data JPA 提供了一系列预定义的 CRUD 方法,如 `save()`、`findById()`、`findAll()`、`deleteById()` 等。这些方法可以直接在接口中使用而无需编写实现代码。 #### 七、自定义查询 除了预定义的方法外,还...

Global site tag (gtag.js) - Google Analytics