Android 使用关系返回错误的房间
我有3个实体,A,B,C 实体A与B和C相关 为了建立这种关系的模型,我做了以下工作:Android 使用关系返回错误的房间,android,android-room,Android,Android Room,我有3个实体,A,B,C 实体A与B和C相关 为了建立这种关系的模型,我做了以下工作: public class RelationA { @Embedded public A a; @Relation(parentColumn = "ID", entityColumn = "bID", entity=B.class) public B b; @Relation(parentColumn = "ID", entityColumn = "cID", entity=C.cl
public class RelationA {
@Embedded public A a;
@Relation(parentColumn = "ID", entityColumn = "bID", entity=B.class)
public B b;
@Relation(parentColumn = "ID", entityColumn = "cID", entity=C.class)
public C c;
}
对于这种关系,我有一个Dao
:
@Dao
public abstract class RelationADao extends BaseDao<RelationA> {
// Add more methods for more custom operations
}
我得到了下面的错误,我不明白为什么
error: Type of the parameter must be a class annotated with @Entity or a collection/array
of it.
public abstract void insert( T entity);`
^
如果您对BaseDao
实现感兴趣,我将介绍它:
@Dao
public abstract class BaseDao<T> {
@Update
public abstract void update( T entity);
@Delete
public abstract void delete( T entity);
@Insert
public abstract void insert( T entity);
}
@Dao
公共抽象类BaseDao{
@更新
公开摘要无效更新(T实体);
@删除
公开摘要作废删除(T实体);
@插入
公开摘要无效插入(T实体);
}
我的理解是,我可以建立一个关系和相应的Dao,并通过该关系更新各个实体。
这可能是我出错的地方,如果是这样的话,我如何实现使用关系插入其他实体
任何帮助都将不胜感激,谢谢
我的理解是,我可以建立一种关系和一种对应关系
Dao并通过关系更新各个实体。可以是
这就是我错的地方如果是这样的话我该怎么做
使用关系插入其他实体
不,您的RelationA类只有一个有用的函数-它可以用于从查询中获取此类型的结果。不能使用它来插入/更新/删除值,就像在用@Entity注释的类中一样。相当于ROOM中类中的两个关系—是SQL查询中添加到表A的两个左联接(B,C表)的集合
SQLite中没有与之连接的对应表。因此,所有的改变都是在A、B、C类的Dao帮助下进行的。非常感谢ya oychen blagadarni!
@Dao
public abstract class BaseDao<T> {
@Update
public abstract void update( T entity);
@Delete
public abstract void delete( T entity);
@Insert
public abstract void insert( T entity);
}