Android/Error
[Room] Not sure how to handle insert method's return type
RIEN😚
2023. 4. 6. 14:16
728x90
토이 프로젝트에서 Room을 사용하던 중 👇🏻아래와 같은 에러에 맞딱드리게 되었습니다. 😭
원인을 찾아보니(?), 여러 방면으로 코드를 수정해보니
Room에서는 insert의 반환값으로 Long을 사용해야 한다는 사실을 알게되었습니다.
제 개인적인 생각으로 Room에서는 Int, Long 상관없이 Integer 타입으로 데이터를 저장하게 됩니다.
실제 Database 구현체 내의 테이블 생성 Query를 확인해보면 이를 알 수 있습니다.
👇🏻 하지만 Post의 id는 Long 타입
이제 실제적으로 데이터를 추가하는 insert 코드를 확인해보겠습니다. 🤗
이 때 최종적으로 호출하는 것이 바로 executeInsert 메서드이며, 반환값이 long으로 정의되어 있는 것을 알 수 있습니다. 😆
데이터베이스를 설계하는 중에는 저장될 데이터가 그렇게 많지 않을 것이라 생각해 id 값들을 int로 지정해두었지만,
위에서 발생한 이슈를 해결하기 위해 모두 Long으로 전환해주었습니다.
👇🏻 요렇게!
반응형