Ошибка комнаты Kotlin: у сущностей и pojos должен быть конструктор - PullRequest
0 голосов
/ 11 ноября 2019

Пожалуйста, не отмечайте это как дубликат. Я видел другие похожие посты, но ничего не помогло

Моя сущность:

@Entity(tableName = "batch_table")
data class Batch(
    val batch_id: String? ="",
    val batch_name: String? ="",
    val user_m_id: String? ="",
    val user_profile_id: String? =""
){
    @PrimaryKey(autoGenerate = true)
    var id1: Int? = 0
constructor():this("","","","")
}

Мой Дао:

@Dao
interface BatchDao{

    @Insert
    suspend fun insert(batch : MutableList<Batch>)

    @Query("delete from batch_table")
    suspend fun deleteBatchTable()

    @Query(" select * from batch_table ")
    suspend fun getAllBatches() :List<Batch>

    @Query("select batch_name from batch_table where batch_id = :batch_id")
    suspend fun getBatchName(batch_id:String)

    @Transaction
    suspend fun insertBatches(batch: MutableList<Batch>){
        deleteBatchTable()
        insert(batch)
    }

Я использовал room и все, что я сделал, это добавил 4-ую функцию (getBatchName) в свой dao, но я не уверен, почему эта ошибка начала возникать.

Ошибка во время компиляции:

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). - `kotlin.Unit`

1 Ответ

0 голосов
/ 11 ноября 2019

Я забыл написать тип возвращаемого значения функции, но сгенерированная ошибка указала мне на другое, поэтому я запутался.

 @Query("select batch_name from batch_table where batch_id = :batch_id")
    suspend fun getBatchName(batch_id:String) : String

.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...