嘿伙计们,我正在将我的表和查询从 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 内部联合查询吗?如果可以的话,请给我一个简单的例子来说明如何编写这个,因为语法与我习惯的不同
当运行查询以从房间数据库返回一些数据时,我在 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) 网站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)