我的存储库 getUserByNameAndAge()
中有一个方法,它通过 2 个参数从 DB 返回一个用户。在我的服务层我需要检查,如果我没有请求名称的数据库用户,我需要抛出一些自定义InvalidUserNameException
,如果我没有这样年龄的数据库用户,我需要抛出一些自定义 InvalidUserAgeException
。但我真的不明白我怎么能做到这一点。
这是我的仓库
interface UserRepository : JpaRepository<CountryLocalization?, Long?> {
@Query(value = "SELECT u.name, u.age FROM users AS u" +
" WHERE u.name = :name AND u.age = :age",
nativeQuery = true)
fun getUserByNameAndAge(
@Param("name") name: String,
@Param("age") age: Int
): User?
}
那么我该如何实施我的服务?
@Service
class UserServiceImpl (val userRepository: UserRepository) : UserService {
override fun getUserByNameAndAge(name: String, age: Int): User {
/// implementation
}
}
答案 0 :(得分:1)
你不应该实现存储库接口,而是将它注入到你的服务中。您可以使用 @Autowired 注释来做到这一点,并且只需在您的方法中使用它。像这样:
@Service
class UserServiceImpl : UserService {
@Autowired
lateinit var userRepository:UserRepository
fun getUserByNameAndAge(name: String, age: Int): User =
userRepository.getUserByNameAndAge(name, age)
}