gpt4 book ai didi

java - 在不循环所有记录的情况下从数据库检索特定数据的最有效方法是什么?

转载 作者:行者123 更新时间:2023-12-02 01:52:07 26 4
gpt4 key购买 nike

我想问一下从数据库中搜索特定数据而不在所有记录中执行 for 循环的最有效方法是什么?

我有一个关于 java spring 的项目,并且我有这个实体:

@Entity  
@Table(name = "USERS") public class USERS {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "UID")
private Integer id;

@Column(name = "FName")
private String firstName;

@Column(name = "SName")
private String secondName;

@Column(name = "TName")
private String thirdName;

@Column(name = "LName")
private String fourthName;

@Column(name = "Email")
private String email;

@Column(name = "PW")
private String password;

@Column(name = "MNumber")
private String mobileNumber;

@Column(name = "ISDeleted")
private boolean isUserDeleted;


//---------------------- Getters and Setters ----------------------

我提供了这项服务:

public List<USERS> findAllActive() {
List<USERS> usersList = new ArrayList<USERS>();
for (USERS users: usersRepository.findAll()){
if (!users.isUserDeleted()){
usersList.add(users);
}
}
return usersList;
}

例如;我有一个用户属性,无论他是否活跃。

所以,我的问题;获取特定数据(例如从数据库中检索所有 Activity 用户)而不像上面的代码那样执行 for 循环的最有效方法是什么?因为如果用户列表达到 100 万或更多,则可能会出现性能问题。

最佳答案

假设您正在使用 JpaRepository,那么您可以创建自定义查询。

@Query("SELECT u FROM USERS u WHERE u.userDeleted = false") 

List<USERS> findNotDeletedUsers();

然后调用usersRepository.findNotDeletedUsers();

关于java - 在不循环所有记录的情况下从数据库检索特定数据的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52811978/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com