43 lines
1.1 KiB
Java
43 lines
1.1 KiB
Java
package io.spring.infrastructure.user;
|
|
|
|
import io.spring.core.user.User;
|
|
import io.spring.core.user.UserRepository;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Repository;
|
|
|
|
import java.util.Optional;
|
|
|
|
@Repository
|
|
public class MyBatisUserRepository implements UserRepository {
|
|
private final UserMapper userMapper;
|
|
|
|
@Autowired
|
|
public MyBatisUserRepository(UserMapper userMapper) {
|
|
this.userMapper = userMapper;
|
|
}
|
|
|
|
@Override
|
|
public void save(User user) {
|
|
if (userMapper.findById(user.getId()) == null) {
|
|
userMapper.insert(user);
|
|
} else {
|
|
userMapper.update(user);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public Optional<User> findById(String id) {
|
|
return Optional.ofNullable(userMapper.findById(id));
|
|
}
|
|
|
|
@Override
|
|
public Optional<User> findByUsername(String username) {
|
|
return Optional.ofNullable(userMapper.findByUsername(username));
|
|
}
|
|
|
|
@Override
|
|
public Optional<User> findByEmail(String email) {
|
|
return Optional.ofNullable(userMapper.findByEmail(email));
|
|
}
|
|
}
|