- 
                Notifications
    
You must be signed in to change notification settings  - Fork 131
 
Closed
Labels
type: bugA general bugA general bug
Milestone
Description
As I see in the comment and code enum support was extracted to this project. But I'm unable to store collection with enum values into PostgreSQL.
Sample code:
import org.springframework.data.annotation.Id
import java.time.DayOfWeek
class UserSchedule(
    @field:Id
    var id: Long?,
    var days: Set<DayOfWeek>,
    var enabled: Boolean = true
)
interface UserScheduleRepository: ReactiveCrudRepository<UserSchedule, Long?> {
}
@RestController
class UserScheduleRestController(
    private val userScheduleRepository: UserScheduleRepository
) {
    @PostMapping("/create")
    fun addSchedule(@RequestBody schedule: UserSchedule): Mono<UserSchedule> {
        return userScheduleRepository.save(schedule)
    }
}I got error:
java.lang.IllegalArgumentException: Cannot encode parameter of type [Ljava.time.DayOfWeek;
	at io.r2dbc.postgresql.codec.DefaultCodecs.encode(DefaultCodecs.java:142) ~[r2dbc-postgresql-0.8.0.RELEASE.jar:0.8.0.RELEASE]
	Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: 
Stack trace:
		at io.r2dbc.postgresql.codec.DefaultCodecs.encode(DefaultCodecs.java:142) ~[r2dbc-postgresql-0.8.0.RELEASE.jar:0.8.0.RELEASE]
		at io.r2dbc.postgresql.ExtendedQueryPostgresqlStatement.bind(ExtendedQueryPostgresqlStatement.java:94) ~[r2dbc-postgresql-0.8.0.RELEASE.jar:0.8.0.RELEASE]
		at io.r2dbc.postgresql.ExtendedQueryPostgresqlStatement.bind(ExtendedQueryPostgresqlStatement.java:45) ~[r2dbc-postgresql-0.8.0.RELEASE.jar:0.8.0.RELEASE]
		at org.springframework.data.r2dbc.core.DefaultDatabaseClient$StatementWrapper.bind(DefaultDatabaseClient.java:1565) ~[spring-data-r2dbc-1.0.0.RC1.jar:1.0.0.RC1]
		at org.springframework.data.r2dbc.dialect.IndexedBindMarker.bind(IndexedBindMarker.java:47) ~[spring-data-r2dbc-1.0.0.RC1.jar:1.0.0.RC1]
		at org.springframework.data.r2dbc.dialect.Bindings$ValueBinding.apply(Bindings.java:238) ~[spring-data-r2dbc-1.0.0.RC1.jar:1.0.0.RC1]
		at org.springframework.data.r2dbc.dialect.Bindings.lambda$apply$1(Bindings.java:122) ~[spring-data-r2dbc-1.0.0.RC1.jar:1.0.0.RC1]
		at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:684) ~[na:na]
		at org.springframework.data.r2dbc.dialect.Bindings.apply(Bindings.java:122) ~[spring-data-r2dbc-1.0.0.RC1.jar:1.0.0.RC1]
		at org.springframework.data.r2dbc.core.DefaultStatementMapper$DefaultPreparedOperation.bindTo(DefaultStatementMapper.java:314) ~[spring-data-r2dbc-1.0.0.RC1.jar:1.0.0.RC1]
		at org.springframework.data.r2dbc.core.DefaultDatabaseClient.lambda$wrapPreparedOperation$18(DefaultDatabaseClient.java:1418) ~[spring-data-r2dbc-1.0.0.RC1.jar:1.0.0.RC1]
		at java.base/java.util.function.Function.lambda$andThen$1(Function.java:88) ~[na:na]
		at org.springframework.data.r2dbc.core.DefaultDatabaseClient.lambda$exchangeInsert$13(DefaultDatabaseClient.java:1380) ~[spring-data-r2dbc-1.0.0.RC1.jar:1.0.0.RC1]
		at org.springframework.data.r2dbc.core.DefaultSqlResult$2.apply(DefaultSqlResult.java:80) ~[spring-data-r2dbc-1.0.0.RC1.jar:1.0.0.RC1]
		at org.springframework.data.r2dbc.core.DefaultSqlResult$2.apply(DefaultSqlResult.java:77) ~[spring-data-r2dbc-1.0.0.RC1.jar:1.0.0.RC1]
		at org.springframework.data.r2dbc.core.DefaultDatabaseClient.doInConnectionMany(DefaultDatabaseClient.java:1427) ~[spring-data-r2dbc-1.0.0.RC1.jar:1.0.0.RC1]
		at org.springframework.data.r2dbc.core.DefaultDatabaseClient.lambda$inConnectionMany$6(DefaultDatabaseClient.java:187) ~[spring-data-r2dbc-1.0.0.RC1.jar:1.0.0.RC1]
		at reactor.core.publisher.FluxUsingWhen.deriveFluxFromResource(FluxUsingWhen.java:118) ~[reactor-core-3.3.0.RELEASE.jar:3.3.0.RELEASE]
		at reactor.core.publisher.FluxUsingWhen.access$000(FluxUsingWhen.java:53) ~[reactor-core-3.3.0.RELEASE.jar:3.3.0.RELEASE]
		at reactor.core.publisher.FluxUsingWhen$ResourceSubscriber.onNext(FluxUsingWhen.java:193) ~[reactor-core-3.3.0.RELEASE.jar:3.3.0.RELEASE]
		at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:114) ~[reactor-core-3.3.0.RELEASE.jar:3.3.0.RELEASE]
		at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:73) ~[reactor-core-3.3.0.RELEASE.jar:3.3.0.RELEASE]
		at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:73) ~[reactor-core-3.3.0.RELEASE.jar:3.3.0.RELEASE]
		at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:192) ~[reactor-core-3.3.0.RELEASE.jar:3.3.0.RELEASE]
		.....
istarion, sanasov and sergeevichvn
Metadata
Metadata
Assignees
Labels
type: bugA general bugA general bug