Skip to content

Kotlin value classes in entities fail with IllegalStateException #1762

Closed
@hajdamak

Description

@hajdamak

Although #1093 suggest otherwise following code fails on 3.2.4:

@JvmInline
value class EmailAddress(val theAddress: String)

@org.springframework.data.relational.core.mapping.Table
data class Contact(val id: String, val name:String, val emailAddress: EmailAddress)

@Repository
interface ContactRepo : CrudRepository<Contact, String> {
}

with:

Caused by: java.lang.IllegalStateException: A constructor parameter name must not be null to be used with Spring Data JDBC; Offending parameter: org.springframework.data.mapping.Parameter@a4a14c26
        at org.springframework.util.Assert.state(Assert.java:97)
        at org.springframework.data.jdbc.core.mapping.JdbcMappingContext.createPersistentEntity(JdbcMappingContext.java:73)
        at org.springframework.data.jdbc.core.mapping.JdbcMappingContext.createPersistentEntity(JdbcMappingContext.java:40)
        at org.springframework.data.mapping.context.AbstractMappingContext.doAddPersistentEntity(AbstractMappingContext.java:407)
        at org.springframework.data.mapping.context.AbstractMappingContext.addPersistentEntity(AbstractMappingContext.java:383)
        at org.springframework.data.mapping.context.AbstractMappingContext.addPersistentEntity(AbstractMappingContext.java:343)
        at java.base/java.lang.Iterable.forEach(Iterable.java:75)
        at org.springframework.data.relational.RelationalManagedTypes.forEach(RelationalManagedTypes.java:81)
        at org.springframework.data.mapping.context.AbstractMappingContext.initialize(AbstractMappingContext.java:519)
        at org.springframework.data.mapping.context.AbstractMappingContext.afterPropertiesSet(AbstractMappingContext.java:511)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1833)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782)

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions