Find user by role using spring data jpa

后端 未结 2 1645
忘掉有多难
忘掉有多难 2021-01-28 10:51

My User Entity

@Entity
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    @Column(nullable = fals         


        
2条回答
  •  攒了一身酷
    2021-01-28 11:16

    Here from User to Role is ONE-TO-MANY mapping
    i.e list of Roles is an element of User entity, and you are passing a String as List of Roles.
    This is the reason you are getting Exception.

    Solutions:

    • Use findByRolesIn(List roles) instead of findByRoles(String role)
    • Or, Make one-to-one mapping as below:

      @Column(nullable = false)
      private String role;
      
    • Or, Use JPA Query or Native query as below.

      @Query( "select u from User u  where u.roles in :roles" )
      public List findByRoles(@Param("roles") List roles);
      

提交回复
热议问题