Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 嵌入式注释可以';t将数据类列表保存到房间数据库中_Android_Database_Android Room_Data Class - Fatal编程技术网

Android 嵌入式注释可以';t将数据类列表保存到房间数据库中

Android 嵌入式注释可以';t将数据类列表保存到房间数据库中,android,database,android-room,data-class,Android,Database,Android Room,Data Class,我有一个嵌入式数据类的列表,在该列表中,我又有一个数据类,当使用@embedded和@ColumnInfo for embedded column时,出现以下错误: 我读了一遍,回答了一遍,然后试了试,但发现了下面的错误 @Entity(tableName = "venues_table") data class Venue( @Embedded val categories: List<Category>, @PrimaryKey val id:

我有一个嵌入式数据类的列表,在该列表中,我又有一个数据类,当使用@embedded和@ColumnInfo for embedded column时,出现以下错误:

我读了一遍,回答了一遍,然后试了试,但发现了下面的错误

@Entity(tableName = "venues_table")
data class Venue(

    @Embedded
    val categories: List<Category>,

    @PrimaryKey
    val id: String,

    @Embedded
    val location: Location,

    val name: String
)


data class Category(

    @Embedded
    val icon: Icon,

     @ColumnInfo(name = "id_category")
    val id: String,

    @ColumnInfo(name = "name_category")
    val name: String,

    @ColumnInfo(name = "plural_name")
    val pluralName: String,

    @ColumnInfo(name = "primary")
    val primary: Boolean,

    @ColumnInfo(name = "short_name")
    val shortName: String
)

e: error: Entities and POJOs must have a usable public constructor. You can have an empty constructor or a constructor whose parameters match the fields (by name and type). - java.util.List
@实体(tableName=“场馆”table)
数据类场馆(
@嵌入
val类别:列表,
@主键
valid:String,
@嵌入
val位置:位置,
val名称:String
)
数据类类别(
@嵌入
val图标:图标,
@ColumnInfo(name=“id\u类别”)
valid:String,
@ColumnInfo(name=“name\u category”)
val name:String,
@ColumnInfo(name=“复数名称”)
val pluralName:String,
@ColumnInfo(name=“primary”)
val primary:Boolean,
@ColumnInfo(name=“short\u name”)
val shortName:String
)
e:错误:实体和POJO必须具有可用的公共构造函数。您可以使用空构造函数,也可以使用参数与字段(按名称和类型)匹配的构造函数java.util.List

请帮我解决这个问题。

@Embedded
说“从其他实体的表中提取列,并将它们嵌入到该实体的表中”。这只适用于单个实体,而不适用于集合。使用
@ForeignKey
或者
@Relation
场馆
类别
之间建立一对多关系。我这样做:@Relation(parentColumn=“id”,entityColumn=“id_Category”)val categories:List,@Entity(ForeignKey=[ForeignKey>)(entity=vention::class,parentColumns=arrayOf(“id”),childColumns=arrayOf(“id_category”),onDelete=ForeignKey.CASCADE)])数据类类别(@PrimaryKey@columnifo(name=“id_category”)val-id:String,--并获取此错误:实体不能有关系。公共最终类地点{
@Relation
将在DAO返回的其他对象上运行。您不能将其直接放在实体上。有关示例,请参见(中的详细描述)。数据类列表在场馆内。这是因为foursquare的API。而不是场馆外的数据类。我必须将列表保存在场馆内。所有这些都是因为我想在我们无法访问互联网时缓存最后的数据并从数据库中读取以供用户反馈。然后,如果您要使用房间,您需要不同的CLA用于与Foursquare通话的ses比用于与Room通话的类要多。这些都是DTO(数据传输对象),需要满足您使用的特定API的特定要求。您还可能有第三组对象,从应用程序本身的角度来看,代表数据的理想视图(与Foursquare和Room的要求无关)。