Kotlin JPA继承顾问

Kotlin JPA继承顾问,jpa,kotlin,spring-data-jpa,Jpa,Kotlin,Spring Data Jpa,我想要的是有两个从一个用户超类继承的用户类型。当我通过用户名/密码对用户进行身份验证时,我不在乎他们是谁。然而,一旦他们开始提出请求,一旦登录,这将变得很重要 我不知道我应该为继承类型和kotlin中的存储库使用什么 @MappedSuperClass open class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) val Id: Long = 0 val username:St

我想要的是有两个从一个用户超类继承的用户类型。当我通过用户名/密码对用户进行身份验证时,我不在乎他们是谁。然而,一旦他们开始提出请求,一旦登录,这将变得很重要

我不知道我应该为继承类型和kotlin中的存储库使用什么

@MappedSuperClass
open class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    val Id: Long = 0

    val username:String = ""

    val password:String = ""
}
类型1

类型2

我想要的是一个能够查看用户名和密码的用户存储库,然后是另外两个的存储库,以获取每个用户的特定属性。我试过了

@Repository
interface UserRepository: JpaRepository<User, Long> {
    fun getUserByUsername(username: String)
}
@存储库
接口用户存储库:JpaRepository{
有趣的getUserByUsername(用户名:字符串)
}
然后

@Repository
interface Type1Repository: UserRepository<Type1, Long>
@存储库
接口类型1存储库:UserRepository
但它不接受类型1存储库中的

我还没有找到一个好的资源来为kotlin讨论这个问题。如果你知道一个,请把它传下去。谢谢。

如图所示:您只是缺少中间接口中的类型,即:

interface UserRepository<User, Long>: JpaRepository<User, Long> {
    fun getUserByUsername(username: String)
}
接口用户存储库:JpaRepository{
有趣的getUserByUsername(用户名:字符串)
}
旁注:kotlin 1.1+是从其他类继承数据类所必需的

@Repository
interface Type1Repository: UserRepository<Type1, Long>
interface UserRepository<User, Long>: JpaRepository<User, Long> {
    fun getUserByUsername(username: String)
}