0
hibernateを持つ単一のオブジェクトをpostgres dbに永続化しようとしています。KotlinとHibernate IllegalArgumentException:StringフィールドJob.nameをJobに設定できません
override fun persistEntity(entity: Job) {
val session = databaseSession.createSessionFactory(Job::class.java)!!.openSession()
session.beginTransaction()
session.save(entity)
session.transaction.commit()
session.close()
databaseSession.destroySession()
}
:とジョブ・クラスのOB、私はインスタンスを保存しようとすると
fun createSessionFactory(targetClass: Class<*>): SessionFactory? {
val registryBuilder = StandardServiceRegistryBuilder()
if (sessionFactory == null) {
val configuration = hashMapOf(
Environment.DRIVER to "org.postgresql.Driver",
Environment.URL to "jdbc:postgresql://localhost:5432/testdb",
Environment.DIALECT to "org.hibernate.dialect.PostgreSQL9Dialect",
Environment.USER to "user",
Environment.PASS to "password",
Environment.HBM2DDL_AUTO to "create"
)
registryBuilder.applySettings(configuration)
serviceRegistry = registryBuilder.build()
val sources = MetadataSources(serviceRegistry)
sources.addAnnotatedClass(targetClass)
val metadata = sources.metadataBuilder.build()
sessionFactory = metadata.sessionFactoryBuilder.build()
}
return sessionFactory
}
:私は次のコードでHibernateセッションを作成
@Entity
@Table(name = "jobs")
data class Job(
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
var id: Int? = 0,
var name: String? = ""
)
:クラスは、このようになります。 java.lang.IllegalArgumentException:java.lang.StringフィールドJob.nameをJobに設定できません。
これは、複数のモジュールを持つスプリングブートアプリケーション内で実装されています。モジュール間の依存関係に問題がないことを確認するために、私は他のプロジェクトの構造を再作成し、同じコードが期待通りに機能します。
誰も私がここで何が欠けているのか考えていますか?