我有一个扩展JpaRepository的自定义AccountRepository接口
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向我的数据库添加新用户?我想确保我的数据库中没有重复的用户名。
发布于 2017-04-23 16:17:04
您可以扩展CrudRepository而不是JpaRepository。
CrudRepository是JpaRepository的子类,它提供了所有的CRUD方法,如保存、删除等。
public interface AccountRepository extends CrudRepository<CustomUserDetails, String>{
public CustomUserDetails findByUsername(String username);
}然后在您的服务中,您将能够使用:
accountRepository.save(newUser);如果您希望避免用户名重复,可以在数据库列上设置unique常量。
如果您从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
}
}
}https://stackoverflow.com/questions/43568664
复制相似问题