Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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 Room Select@Relationship注释,条件为一对多问题_Android_Android Room - Fatal编程技术网

Android Room Select@Relationship注释,条件为一对多问题

Android Room Select@Relationship注释,条件为一对多问题,android,android-room,Android,Android Room,我有两个实体:用户和消息。每个用户都可以有一些消息 类用户 @Entity(tableName = DBConstants.TABLE_USER) open class User( @field:PrimaryKey(autoGenerate = true) var id: Int = 0, var appUserId: Int = 0, var name: String = "", var phoneNumber:

我有两个实体:用户和消息。每个用户都可以有一些消息

类用户

@Entity(tableName = DBConstants.TABLE_USER)
open class User(
        @field:PrimaryKey(autoGenerate = true)
        var id: Int = 0,
        var appUserId: Int = 0,
        var name: String = "",
        var phoneNumber: String = "",
        var appPackage: @AppPackage String = IN_APP,
        var userType: @UserType Int = CUSTOMER
) : Serializable ,BaseObservable(){
    @field:Ignore
    var messages: ArrayList<Messages> = ArrayList()

    @Bindable
    fun getNumMessages() : Int {
        return messages.size
    }
}
对于“选择一个用户-多条消息”。我创建了类UserMessagesView.kt

class UserMessagesView {
    @Embedded
    var user : User = User()
    @Relation(parentColumn = "id", entityColumn = "userId",entity = Messages::class)
    var msg: List<Messages> = ArrayList()
}
class用户消息视图{
@嵌入
var user:user=user()
@关系(parentColumn=“id”,entityColumn=“userId”,entity=Messages::class)
var msg:List=ArrayList()
}
我使用选择内部联接,条件如下

@Dao
abstract class UserMessagesDao : BaseDao<Messages>() {
    @Query("SELECT * FROM user INNER JOIN messages ON messages.user_id = user.id WHERE messages.date like '%18-11-2018%'")
    abstract fun getAllMessagesByToday(): List<UserMessagesView>
}
@Dao
抽象类UserMessagesDao:BaseDao(){
@查询(“从messages.user_id=user.id WHERE messages.date上的用户内部联接消息中选择*,如“%18-11-2018%”)
抽象趣味getAllMessagesByToday():列表
}
在数据库中,我有一个id为1的表用户 以及4条记录在id user=1的表messages外键中的消息。跟随2图像 [附表][2]

我的问题是当我调用方法时

getAllMessagesByToday

我收到的列表大小为4,但第一个元素“UserMessagesView”对象“msg”的大小为4,其他元素对象“msg”的大小为0。 和UserMessagesView中的object User在列表中它们是相同的所有字段,每个ID都不同 跟随图像

在本例中,我认为Room将返回1条记录,其中包含一个user对象和一个包含4个元素的msg。但这并不完全是我所想的。我不知道哪里出了问题。 请帮帮我。我花了三天的时间才找到答案,但没有成功。也许房间是新的,没有人会像我一样有问题。谢谢大家。
对不起,我的英语不好

请帮帮我!!!!你找到解决这个问题的办法了吗?有解决这个问题的办法吗?
@Dao
abstract class UserMessagesDao : BaseDao<Messages>() {
    @Query("SELECT * FROM user INNER JOIN messages ON messages.user_id = user.id WHERE messages.date like '%18-11-2018%'")
    abstract fun getAllMessagesByToday(): List<UserMessagesView>
}