小编And*_*123的帖子

房间 SQLITE 使用 JOINS 从多个表中删除查询

嘿伙计们,我正在将我的表和查询从 mysql 移动到一个 andorid 应用程序内的内部 SQLITE 数据库。

当我将删除查询复制到我的 DAO 中时,它抛出了一个错误:

DELETE moodBeforeTable, moodAfterTable
FROM moodBeforeTable
JOIN moodAfterTable
ON  moodAfterTable.cbtId = moodBeforeTable.cbtId
WHERE moodBeforeTable.cbtId =: cbtId";
Run Code Online (Sandbox Code Playgroud)

第一个词moodBeforeTable 是红色下划线,IDE 声明它期望FROM。它似乎不喜欢 mysql 语法。我不确定如何重写此查询。我还从另一个表中进行了第二次删除。是否可以通过一个方法调用执行所有这些删除?

基本上,当用户单击删除按钮时,它需要一键从三个单独的表中删除记录。我们可以在 DAO 内部联合查询吗?如果可以的话,请给我一个简单的例子来说明如何编写这个,因为语法与我习惯的不同

android android-sqlite android-room

2
推荐指数
1
解决办法
769
查看次数

由于未找到列,房间数据库崩溃

当运行查询以从房间数据库返回一些数据时,我在 API 23 物理设备上遇到此崩溃。

逻辑猫

E/AndroidRuntime: FATAL EXCEPTION: arch_disk_io_2
java.lang.RuntimeException: Exception while computing database live data.
    at androidx.room.RoomTrackingLiveData$1.run(RoomTrackingLiveData.java:92)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
    at java.lang.Thread.run(Thread.java:818)
 Caused by: java.lang.IllegalArgumentException: column '`allOrNothing`' does not exist
    at android.database.AbstractCursor.getColumnIndexOrThrow(AbstractCursor.java:333)
    at androidx.room.util.CursorUtil.getColumnIndexOrThrow(CursorUtil.java:108)
    at com.example.persistence.dao.DaoPieChart_Impl$2.call(DaoPieChart_Impl.java:169)
    at com.example.persistence.dao.DaoPieChart_Impl$2.call(DaoPieChart_Impl.java:164)
    at androidx.room.RoomTrackingLiveData$1.run(RoomTrackingLiveData.java:90)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
    at java.lang.Thread.run(Thread.java:818) 
Run Code Online (Sandbox Code Playgroud)

我已经浏览了表格和模型,但看不到问题所在。列名明确存在。

桌子

@Entity (tableName = "tableDistortedThinking")
public class TableDistortedThinking {

@PrimaryKey(autoGenerate = true)
private long pkDistortedThinking;

@ColumnInfo(name = "reframingId")
private long fkReframingId;

@ColumnInfo(name = "userId")
private long fkUserId;

@ColumnInfo(name = "allOrNothing")
private …
Run Code Online (Sandbox Code Playgroud)

sqlite android android-sqlite android-room

1
推荐指数
1
解决办法
470
查看次数

Android Webview 中未呈现特定 URL

网站https://app.seesaw.me/#/login不会在 Android Web 视图中为我呈现任何内容。

我的设置如下:

  with(webView.settings) {
            mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW
            loadsImagesAutomatically = true
            javaScriptEnabled = true
            ResourcesCompat.getFont(requireContext(), R.font.helvetica_neue)
        }

        webView?.loadUrl("https://app.seesaw.me/#/login")
Run Code Online (Sandbox Code Playgroud)

它将加载主页,但当我导航到登录时,屏幕变为空白。logcat 显示此消息。

D/InputMethodManager: HSIFW - flag : 0
I/chromium: [INFO:CONSOLE(18)] "Invalid  asm.js: Type mismatch in assignment", source:  https://app.seesaw.me /#/login?force_login=signup (18)
I/chromium: [INFO:CONSOLE(4)] "The provided value 'moz-chunked-arraybuffer' is not a valid enum value of type XMLHttpRequestResponseType.", source:  (4)
I/chromium: [INFO:CONSOLE(14)] "Uncaught TypeError: Cannot read properties of null (reading 'getItem')", source: https://files.seesaw.me/release/prod/shared-ext.ec61797e71c5b625.bundle.js (14)
I/ViewRootImpl@7385979[MainActivity]: ViewPostIme pointer 0
Run Code Online (Sandbox Code Playgroud)

android android-webview

1
推荐指数
1
解决办法
2689
查看次数