Postgresql 无法使用kotlin和spring数据持久化数据
我想利用JPA中的继承优势。我有三门课:Postgresql 无法使用kotlin和spring数据持久化数据,postgresql,hibernate,kotlin,spring-data-jpa,Postgresql,Hibernate,Kotlin,Spring Data Jpa,我想利用JPA中的继承优势。我有三门课: @Entity @Inheritance(strategy = InheritanceType.JOINED) @DiscriminatorColumn( name = "MY_DISC", discriminatorType = DiscriminatorType.STRING ) open class BaseClass( @Id @GeneratedValue(st
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn(
name = "MY_DISC",
discriminatorType = DiscriminatorType.STRING
)
open class BaseClass(
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
val id: Long? = null,
...shared things
)
@Entity
@DiscriminatorValue(value = "FIRST_VALUE")
class FirstClass(...shared) : BaseClass(...shared things ) {
}
@Entity
@DiscriminatorValue(value = "SECOND_VALUE")
class SecondClass(...shared) : BaseClass(...shared things ) {
}
我还创建了存储库:
@Repository
interface FirstClassRepo : CrudRepository<FirstClass, Long> {
}
... other similar
我已经检查了很多链接,但是没有一个有效,有关于kotlin+spring数据jpa+继承的教程吗?或者我在解决方案中遗漏了什么?显然,唯一有效的方法是添加一个带有注释的字段
@Column("MY_DESC", insertable = false, updatable = false)
它解决了我所有的顾虑。显然,唯一有效的方法是添加一个带有注释的字段
@Column("MY_DESC", insertable = false, updatable = false)
它解决了我所有的问题。您是手动创建表还是由jpa创建的?它是由jpa创建的。我唯一指定的是:spring.jpa.hibernate.ddl auto=create您可以将其添加到
application.properties
中,并使用生成的sql更新问题,以创建FirstClass
表和保存
spring.jpa.show sql=true
和spring.jpa.properties.hibernate.format_sql=true
实际上,如果删除@DiscriminatorColumn
和@DiscriminatorValue
注释,它应该可以工作,是手动创建表还是由jpa创建的?它是由jpa创建的。我唯一指定的是:spring.jpa.hibernate.ddl auto=create您可以将其添加到application.properties
中,并使用生成的sql更新问题,以创建FirstClass
表和保存
spring.jpa.show sql=true
和spring.jpa.properties.hibernate.format_sql=true
实际上如果删除@DiscriminatorColumn
和@DiscriminatorValue
注释,它应该可以工作