Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.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/4/kotlin/3.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 没有这样的表:@DatabseView_Android_Kotlin_Android Sqlite_Android Room_Sqliteopenhelper - Fatal编程技术网

Android 没有这样的表:@DatabseView

Android 没有这样的表:@DatabseView,android,kotlin,android-sqlite,android-room,sqliteopenhelper,Android,Kotlin,Android Sqlite,Android Room,Sqliteopenhelper,我试图在android中创建数据库视图,但出现以下错误: 错误:查询有问题:[SQLITE_error]SQL错误或 缺少数据库(没有这样的表:ChatsView) 公共摘要androidx.lifecycle.LiveData> getMessageViewLIst() 请帮助我了解如何从room persistence android中的DatabaseView中获取数据 数据库视图类 实体类 DaoAccess类 刀 @Dao 界面聊天道{ @插入(onConflict=OnConflic

我试图在android中创建数据库视图,但出现以下错误:

错误:查询有问题:[SQLITE_error]SQL错误或 缺少数据库(没有这样的表:ChatsView) 公共摘要androidx.lifecycle.LiveData> getMessageViewLIst()

请帮助我了解如何从room persistence android中的DatabaseView中获取数据

数据库视图类

实体类

DaoAccess类

@Dao
界面聊天道{
@插入(onConflict=OnConflictStrategy.ABORT)
趣味插页列表(聊天:列表)
@插入(onConflict=OnConflictStrategy.ABORT)
在搜索中的乐趣(聊天室:聊天室模型)
@更新
趣味updateMovie(聊天室:聊天室模型)
@查询(“从ChatEntityModel中选择*,其中id=:id_”)
趣味电影(id:Int):聊天室模型
@查询(“从ChatEntityModel中选择*,其中用户名=:Jid ORDER BY id ASC”)
有趣的getChatList(Jid:String?):LiveData
@查询(“更新聊天室模型集状态=2,时间戳\交付=:时间交付,其中msgid=:msg\ id
状态3和用户名=:Jid“)
fun setChatDelivered(timeDelivered:String?,msg_id:String?,Jid:String?)
@查询(“从ChatEntityModel中选择*,其中状态=0按id限制排序1”)
fun getUnsentMessage():列表
@查询(“从ChatEntityModel中选择msgid,其中状态=4,用户名=:用户名按id排序”)
趣味GetUnderMessage(用户名:字符串):列表
@查询(“更新ChatenityModel集合状态=1,其中msgid=:msgid,状态=0”)
fun setMessageSent(msgId:String?)
@查询(“从ChatEntityModel中选择*,其中msgid=:msgid”)
有趣的checkIfExists(msgId:String?):列表
@查询(“更新聊天室模型集状态=3,时间戳\读取=:currentTimeMillis,其中msgid在(:receiptId)中,用户名=:Jid”)
fun setChatRead(currentTimeMillis:String?,receiptId:List,Jid:String?)
@查询(“从ChatEntityModel中选择*,其中状态=4,用户名=:Jid”)
有趣的getUnReadChats(Jid:String?):LiveData
@查询(“在(:chat)中更新ChatEntityModel set status=5,其中status=4和msgid”)
乐趣设置ChatReceiveDread(聊天室:列表)
@查询(“从聊天视图中选择*)
fun getMessageViewLIst():LiveData
}

也许这与您的问题无关,但也许是,有时错误很奇怪。您的视图请求为多个
选择不正确的
,可能尝试修复您的
查询


编辑:为更清楚起见,问题是
查询
错误,缺少comas。

您需要将数据库名称添加到抽象RoomDatabase类

@Database(entities = [ChatsView::class], version = 1)
abstract class DaoDatabaseAccess:RoomDatabase() {

}

查询很好,我在dao中尝试了相同的查询,但没有使用view,但我想使用DatabaseView执行此操作,当时我得到了一个错误,即不存在这样的表,是否缺少一些逗号?在
之后作为lastMsg
之后作为lastMsgTime
?我已经在我的项目上创建了一个视图,并像您一样将其添加到DAO和数据库中,一切都直接起作用。
@Entity(tableName = "ChatEntityModel")
data class ChatEntityModel (


@ColumnInfo(name = "message") var KEY_MESSAGE: String,
@ColumnInfo(name = "username") var KEY_USERNAME : String,
@ColumnInfo(name = "msgsend") var KEY_MSG_SEND : Boolean,
@ColumnInfo(name = "timeStamp") var KEY_TIMESTAMP :String,
@ColumnInfo(name = "status") var KEY_STATUS :Int,
@ColumnInfo(name = "msgid") var KEY_MSG_ID :String,
@ColumnInfo(name = "timestamp_delivered") var KEY_TIME_DELIVERED :String,
@ColumnInfo(name = "timestamp_read") var KEY_TIME_READ :String,
@ColumnInfo(name = "progress") var KEY_PROGRESS :String,
@ColumnInfo(name = "type") var KEY_TYPE : String


){
@PrimaryKey(autoGenerate = true)@ColumnInfo(name = "id")var KEY_ID:Int=0
}
@Database(entities = [(ChatEntityModel::class)], views = [(ChatsView::class)], version = 1, 
exportSchema = false)
abstract class DaoDatabaseAccess:RoomDatabase() {
abstract fun ChattingDao():ChattingDao
//    abstract fun ChattViewDao():ChattViewDao


}
@Dao
interface ChattingDao {

@Insert(onConflict = OnConflictStrategy.ABORT)
fun insertChatList(chats: List<ChatEntityModel>)

@Insert(onConflict = OnConflictStrategy.ABORT)
fun inserChat(chats: ChatEntityModel)

@Update
fun updateMovie(chats: ChatEntityModel)

@Query("SELECT * FROM ChatEntityModel WHERE id = :id_")
fun getMovie(id_: Int): ChatEntityModel

@Query("SELECT * FROM ChatEntityModel WHERE username=:Jid ORDER BY id ASC")
fun getChatList(Jid:String?): LiveData<List<ChatEntityModel>>

@Query("Update  ChatEntityModel SET status=2 , timestamp_delivered=:timeDelivered WHERE msgid=:msg_id 
and status <> 3  and username=:Jid ")
fun setChatDelivered(timeDelivered: String?,msg_id:String?,Jid: String?)

@Query("SELECT * FROM ChatEntityModel WHERE status=0 ORDER BY id LIMIT 1" )
fun getUnsentMessage(): List<ChatEntityModel>

@Query("SELECT msgid FROM ChatEntityModel WHERE status=4 and username=:username ORDER BY id" )
fun getUnReadMessage(username:String): List<String>

@Query("UPDATE ChatEntityModel SET status=1 WHERE msgid= :msgId and status=0")
fun setMessageSent(msgId: String?)

@Query("SELECT * FROM ChatEntityModel WHERE msgid =:msgId")
fun checkIfExists(msgId:String?): List<ChatEntityModel>

@Query("Update  ChatEntityModel SET status=3 , timestamp_read=:currentTimeMillis WHERE msgid in (:receiptId) and username=:Jid ")
fun setChatRead(currentTimeMillis: String?, receiptId:List<String>,Jid: String?)

@Query("SELECT * FROM ChatEntityModel WHERE  status=4 and username=:Jid ")
fun getUnReadChats(Jid: String?):LiveData<List<ChatEntityModel>>

@Query("UPDATE ChatEntityModel set status=5 WHERE  status=4 and  msgid in (:chat) ")
fun setChatReceivedRead(chat:List<String>)

@Query("SELECT * FROM ChatsView")
fun getMessageViewLIst(): LiveData<List<ChatsView>>

}
@Database(entities = [ChatsView::class], version = 1)
abstract class DaoDatabaseAccess:RoomDatabase() {

}