我正在尝试使用Kotlin和Jakarta Persistence设置Sping Boot 项目。但是,我在尝试运行应用程序时遇到了一个错误:
错误原因:java.lang.IllegalArgumentException:不是托管类型:Clue类
项目设置:
- Sping Boot 版本:3.1.3
线索实体:
import com.jd.jtrivia.models.Category
import jakarta.persistence.*
@Entity
data class Clue(
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
val id: Long = 0,
val question: String,
val answer: String,
@ManyToOne
val category: Category
)
我已确保:
Clue
类用jakarta.persistence
中的@Entity
注解。- 所有相关的依赖项都来自Jakarta命名空间。
项目结构: - jtrivia
- src
- 主要
- Kotlin
- com.jd.trivia
- JtriviaApplication.kt(@SpringBootApplication)
- 模型
- Clue.kt
- Category.kt
- 存储库
- CategoryRepository.kt
- ClueRepository.kt
- DatabaseSeeder.kt
1条答案
按热度按时间ftf50wuq1#
答案:
问题似乎与不正确的包导入有关。在使用JPA实体时,确保注解及其相关导入的一致性至关重要。
在我的例子中,JPA注解的正确导入是来自
com.jd.jtrivia.models
包,而不是com.jd.jtrivia.models.Category
。固定实体声明如下: