잡동사니

반응형

질문

스프링 r2dbc 데이터를 사용하여 ID 만있는 엔티티를 삽입하려고하면 다음 예외가 발생합니다.

Exception while fetching data (addChat) : INSERT contains no values

java.lang.IllegalStateException: INSERT contains no values
    at org.springframework.data.r2dbc.core.DefaultStatementMapper.getMappedObject(DefaultStatementMapper.java:159) ~[spring-data-r2dbc-1.0.0.RC1.jar:1.0.0.RC1]
    at org.springframework.data.r2dbc.core.DefaultStatementMapper.getMappedObject(DefaultStatementMapper.java:144) ~[spring-data-r2dbc-1.0.0.RC1.jar:1.0.0.RC1]

데이터베이스 postgres :

create table chats
(
    id serial not null
        constraint chats_pkey
            primary key
);

실재

import org.springframework.data.annotation.Id
import org.springframework.data.relational.core.mapping.Table

@Table("chats")
data class ChatEntity(
        @Id val id: Int? = null
)

저장소:

import org.springframework.data.r2dbc.repository.R2dbcRepository
import org.springframework.stereotype.Repository


@Repository
interface ChatsRepository : R2dbcRepository<ChatEntity, Int>

서비스:

//Service
val chatAdded = chatsRepository.save(ChatEntity(id = null)).awaitFirst()

동일한 프로젝트에서 ID가있는 다른 엔티티와 잘 작동하는 다른 열이 있습니다.이 오류가 발생한 이유를 아십니까?


답변1

postgres를 사용하는 경우 아래와 같이 실행 (…)하고 삽입 된 값을 반환 할 수 있습니다.

  val chatAdded = db.execute("INSERT INTO chats\n" +
                "        DEFAULT VALUES\n" +
                "        RETURNING *")
                .map { row -> ChatEntity(id = row.get("id") as Int) }
                .awaitOne()


 

 

 

 

출처 : https://stackoverflow.com/questions/59126551/insert-contains-no-values-with-spring-data-r2dbc

반응형

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band