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으로 전환해주었습니다.

👇🏻 요렇게!

 

 

 

반응형