What's the total number of "h"s in:
Q: Room Dao не распознает символы id. Как это можно исправить? Пытаюсь указать SQL запросы с поиском по id, однако Dao отказывается их распознавать. Как это можно исправить?

Вот код:
@Dao
public abstract class CategoryDao
    implements BaseDao<Category> {
@Query(value="DELETE FROM Category")
public abstract void deleteAll();

@Query(value="SELECT * FROM Category WHERE parent_id = 0")
public abstract List<Category> getCategories();

@Query(value="SELECT * FROM Category WHERE parent_id = :id ORDER BY position ASC")//
public abstract List<Category> getCategories(int var1);

@Query(value="SELECT * FROM Category WHERE id = :id ORDER BY position ASC")//
public abstract Category getCategory(int var1);

@Query(value="SELECT has_products FROM Category WHERE id = :id")//
public abstract boolean hasProducts(int var1);

@Transaction
public void updateData(List<Category> list) {
    this.deleteAll();
    this.insert(list);
}
}

Вот интерфейс BaseDao:
interface BaseDao<T> {
@Delete
public void delete(T var1);

@Delete
public void delete(List<T> var1);

@Insert(onConflict=1)
public void insert(T var1);

@Insert(onConflict=1)
public void insert(List<T> var1);

@Update
public void update(T var1);

@Update
public void update(List<T> var1);
}

Класс Category
@Entity
public class Category implements Comparable<Category>, MenuPosition {

@ColumnInfo(name="has_products")
private boolean hasProducts;
@ColumnInfo(name="has_subgroups")
private boolean hasSubgroups;
@PrimaryKey
private int id;
private String image;
@ColumnInfo(name="image_checksum")
private String imageChecksum;
@ColumnInfo(name="image_thumb")
private String imageThumb;
@ColumnInfo(name="parent_id")
private int parentId;
private int position;
private String title;

public Category(int n2, String string2, String string3, String string4, String string5, int n3, boolean bl, boolean bl2, int n4) {
    this.id = n2;
    this.image = string2;
    this.imageThumb = string3;
    this.imageChecksum = string4;
    this.title = string5;
    this.position = n3;
    this.hasSubgroups = bl;
    this.hasProducts = bl2;
    this.parentId = n4;
}
}


A: А где у вас переменная id?
Если имелась в виду колонка в таблице - то уберите двоеточие.  
Если значение, переданное в метод, то имя должно совпадать с именем параметра.
То есть должно быть либо так:
@Query(value="SELECT * FROM Category WHERE parent_id = :var1 ORDER BY position ASC")//
public abstract List<Category> getCategories(int var1);

Либо так:
@Query(value="SELECT * FROM Category WHERE parent_id = :id ORDER BY position ASC")//
public abstract List<Category> getCategories(int id);


A: Проверьте, что класс Category у вас выглядит как-то так:
@Entity
class Category(

    @PrimaryKey(autoGenerate = true)
    var id: Int? = null,

    .......

    )


user
The passage contains 31 "h"s.
assistant