【发布时间】:2021-01-23 15:07:04
【问题描述】:
我正在尝试在 Kotlin 中使用 Spring data JDBC 和 Query DSL。 这是我的仓库
@Repository
interface UserRepository : PagingAndSortingRepository<User, Int>, QuerydslPredicateExecutor<User> {}
我的实体是一个简单的数据对象
@Entity
@Table(name = "user")
data class User(
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "user_id_seq")
@SequenceGenerator(name = "user_id_seq", sequenceName = "user_id_seq", allocationSize = 1)
val id: Int? = null,
val name: String,
val surname: String)
我已将这些行添加到我的 build.gradle 中
implementation("com.querydsl:querydsl-sql-spring:4.4.0") {
exclude group: 'joda-time', module: 'joda-time'
}
kapt "com.querydsl:querydsl-apt:4.4.0:jpa"
我在我的 Spring 应用程序中添加了 @EnableJdbcrepositories 注释
但是当我尝试启动我的应用程序时,我收到了这个错误:
Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userRepository' defined in my.tests.querydsl.repositories.UserRepository defined in @EnableJdbcRepositories declared on
JdbcRepositoriesRegistrar.EnableJdbcRepositoriesConfiguration: Invocation of init method failed; nested exception is org.springframework.data.repository.query.QueryCreationException: Could not create query for public abstract long org.springframework.data.querydsl.QuerydslPredicateExecutor.count(com.querydsl.core.types.Predicate)! Reason: No property count found for type User!
我也尝试删除 @EnableJdbcrepositories 注释,但错误仍然存在。
我做错了什么?我缺少一些依赖项?
谢谢
【问题讨论】:
标签: spring-boot kotlin jdbc querydsl