我有一个实体类User,它通过@IdClass注解实现了组合键
@Entity
@IdClass(UserId.class)
public class User {
@Id
private String name;
@Id
private String surname;
private boolean active;
}组合键:
@Data
public class UserId implements Serializable {
private String name;
private String surname;
}我在底层使用Spring Data和hibernate JPA。因此,我有repo接口:
public interface UserRepo extends JpaRepository<User, UserId> {
}我想从db获取所有活跃用户的具体姓名和姓氏列表。例如,我想使用这样的方法
List<User> findAllByActiveTrue(List<UserId> ids);如何通过Spring Data或JPQL查询此需求?
发布于 2020-06-13 02:28:41
您可以对复合主键使用@Embeddable和@EmbeddedId
@Embeddable
public class UserId implements Serializable {
private String name;
private String surname;
}
@Entity
public class User {
@EmbeddedId
private UserId userId;
...
}然后像这样查询
List<User> findByUserIdInAndActiveTrue(List<UserId> ids);关于@Embeddable和@EmbeddedId here的好教程
https://stackoverflow.com/questions/62350109
复制相似问题