房间;将整数数组存储到单独的表中?

时间:2017-07-30 16:07:51

标签: android arrays sqlite android-room android-architecture-components

使用Room ORM,我使用EQPreset注释声明了一个实体@Entity。该实体包含数组int[]。它给出了以下错误:

错误:无法弄清楚如何将此字段(int [] arr)保存到数据库中。您可以考虑为其添加类型转换器。

通常将EQPreset实例保存到数据库中,我会创建一个单独的表来存储数组的值,并使用指向相关EQPreset的外键。 但是,我需要找到使用int[] arr存储EQPreset Room ent的方法,即通过制作单独的表格或使用任何好的方法/方式。“ / p>

1 个答案:

答案 0 :(得分:4)

选项#1:摆脱int[] arr。让其他实体表示此整数,并将外键返回到EQPreset实体。让DAO上的方法能够为给定的EQPreset实体提供整数实体。

选项#2:使用@TypeConverterint[]转换为可以进入单个列的内容(例如,将其转换为JSON数组或从JSON数组转换,表示为字符串)。< / p>