实体和POJO必须在Kotlin中具有可用的公共构造函数

实体和POJO必须在Kotlin中具有可用的公共构造函数,kotlin,android-room,Kotlin,Android Room,我正试图使用@Ignore创建一个房间实体,但当我尝试构建应用程序时,出现以下错误: Entities and POJOs must have a usable public constructor 下面是我的代码的样子: @Entity(tableName = "prodotti_table") data class Prodotto( @PrimaryKey(autoGenerate = false) var codart: String, v

我正试图使用@Ignore创建一个房间实体,但当我尝试构建应用程序时,出现以下错误:

 Entities and POJOs must have a usable public constructor
下面是我的代码的样子:

@Entity(tableName = "prodotti_table")
data class Prodotto(
    @PrimaryKey(autoGenerate = false)
    var codart: String,
    var desc: String,
    var prezzo_acq: Float,
    var prezzo_vend: Float,
    @Ignore var barcode: List<Barcode>,
    var qta: Float
)

@Entity(tableName = "barcode_prodotti_table")
data class Barcode(
    @PrimaryKey
    var id: Int,
    var codart: String,
    var barcode: String,
    var qta: Float
)
@实体(tableName=“prodotti_table”)
数据类Prodotto(
@PrimaryKey(自动生成=false)
var codart:字符串,
变量描述:字符串,
var prezzo_acq:浮动,
var prezzo_vend:浮动,
@忽略var条形码:列表,
var-qta:浮动
)
@实体(tableName=“条形码\生产数据\表格”)
数据类条形码(
@主键
变量id:Int,
var codart:字符串,
var条形码:字符串,
var-qta:浮动
)

如何在该数据类中使用@Ignore来解决此问题?

您不能在构造函数中放置忽略的属性,因此请执行以下操作:

@Entity(tableName = "prodotti_table")
data class Prodotto(
    @PrimaryKey(autoGenerate = false)
    var codart: String,
    var desc: String,
    var prezzo_acq: Float,
    var prezzo_vend: Float,
    var qta: Float
) {
    @Ignore var barcode: List<Barcode> = emptyList()
}
@实体(tableName=“prodotti_table”)
数据类Prodotto(
@PrimaryKey(自动生成=false)
var codart:字符串,
变量描述:字符串,
var prezzo_acq:浮动,
var prezzo_vend:浮动,
var-qta:浮动
) {
@忽略变量条形码:List=emptyList()
}
但请记住,不在数据类构造函数中的属性不会参与
equals
hashcode
copy
toString