gpt4 book ai didi

java - 在 findBy 旁边添加 addUser

转载 作者:太空宇宙 更新时间:2023-11-04 11:33:10 25 4
gpt4 key购买 nike

我有一个扩展 JpaRepository 的自定义 AccountRepository 接口(interface):

import org.springframework.data.jpa.repository.JpaRepository;
import com.boot.cut_costs.config.security.CustomUserDetails;

public interface AccountRepository extends JpaRepository<CustomUserDetails, String>{
public CustomUserDetails findByUsername(String username);
}

如何添加另一个方法 addUser(String username, String password) 来使用此 AccountRepository 将新用户添加到我的数据库?我想确保我的数据库中没有重复的用户名。

最佳答案

您可以扩展 CrudRepository 而不是 JpaRepository

CrudRepositoryJpaRepository 的子类,它提供了 CRUD 的所有方法,如保存、删除等。

public interface AccountRepository extends CrudRepository<CustomUserDetails, String>{
public CustomUserDetails findByUsername(String username);
}

然后在您的服务中您将能够使用:

accountRepository.save(newUser);

如果您想避免重复的用户名,可以在数据库列上设置unique constain。

如果您从 java 实体生成数据库,您可以像这样注释用户名字段:

@Column(unique=true)
String username;

您也可以提供您自己的implementation :

class AccountRepositoryImpl implements AccountRepository { //AccountRepository is extending CrudRepository

public void addUser(User user) {
if(!exists(user.getId())){ //methods exists and save come from CrudRepository
save(user);
} else {
//handle error
}

}
}

关于java - 在 findBy 旁边添加 addUser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43568664/

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