我有以下实体:
@Entity(tableName = "match_frames_table")
data class DbFrame(
@PrimaryKey(autoGenerate = false)
val frameId: Int
)
在一个数据类下面,引用了3个其他实体,包括一个嵌套实体,DbBreakWithPots
:
data class DbFrameWithScoreAndBreakWithPotsAndBallStack(
@Embedded val frame: DbFrame,
@Relation(
parentColumn = "frameId",
entityColumn = "frameId",
)
val frameScore: List<DbScore>,
@Relation(
parentColumn = "frameId",
entityColumn = "frameId",
entity = DbBreak::class
)
val frameStack: List<DbBreakWithPots>,
@Relation(
parentColumn = "frameId",
entityColumn = "frameId"
)
val ballStack: List<DbBall>
)
其中< code>DbBreakWithPots如下所示:
data class DbBreakWithPots(
@Embedded val matchBreak: DbBreak,
@Relation(
parentColumn = "breakId",
entityColumn = "breakId"
)
val matchPots: List<DbPot>
)
在我的DAO中,我实现了查询方法,它运行良好:
@Query("SELECT * FROM match_frames_table")
fun getMatchFrames(): LiveData<List<DbFrameWithScoreAndBreakWithPotsAndBallStack>>
但是,目前我正在逐个表手动从数据库中插入和删除,但我具有嵌套关系的事实使其变得棘手。有没有办法简单地插入DbFrame
并通过一个sql请求将其删除?
让onUpdate和onDelete操作的级联选项完成这项工作。
更具体地定义子实体中的外键,例如:-
@Entity(
foreignKeys = [
ForeignKey(entity = DBIdTotal::class, // Parent Entity
parentColumns = ["id_DBIdTotal"], // column(s) in the parent
childColumns = ["ref_DBIdTotal"], // column(s) in this table (the child)
onDelete = ForeignKey.CASCADE, //<<<<<<<<<< if parent is deleted, the deletion is cascaded to the respective children and they are updated
onUpdate = ForeignKey.CASCADE //<<<<<<<<<< if parent's referenced column(s) is updated then the updated value is changed in the respective children
)
]
)
data class DBIdOpPedido(
@PrimaryKey
val id_DBIdOpPedido: Long,
val ref_DBIdTotal: Long,
val op: String
)
您不必对两个操作都进行编码,您可能希望只使用onDelete。您可能希望查看:-
问题内容: 在一个模型中,我有这个: 如果我选择: 有用。 如何从关系中删除所有对象?不管用。 问题答案: 首先,你需要使用或来清除关系,根据docs,哪种更适合你的需求。 之后,你需要使用删除对象。方法。
问题内容: 如何删除python字符串中的所有空格?例如,我希望将一个字符串转换为,但是我似乎无法通过以下方式完成此操作: 问题答案: 利用没有sep参数的str.split的行为: 如果只想删除空格而不是所有空格: 过早优化 尽管效率不是主要目标(编写清晰的代码是),但以下是一些初始时间: 请注意,正则表达式已缓存,因此它没有您想象的那么慢。编译事前帮助一些,但在实践中,如果你把这个只会重要 很
我正在使用hibernate多对多的关联。我有3个表(STUDENT,COURSE和STUDENT_COURSE)。在3个表中,2个是主表,1个是提供关系的中间表。当记录从STUDENT中删除时,相应的映射将从Student_Course中删除。我的要求是它甚至应该从课程表中删除记录。考虑以下STUDENT_COURSE条目: 当从学生表中删除101时,上述表中的第一个条目被删除,但课程表中对应于
问题内容: $(“#topNav” + $(“#breadCrumb2nd”).text().replace(” “, “”)).addClass(“current”); 这是我的代码的一部分。我想在获取另一个ID的text属性后向ID添加一个类。问题在于,持有我需要的文本的ID包含字母之间的空格。 我希望删除空白。我已经尝试过,但这只能部分起作用。该只删除第一个空间。 问题答案: 您必须告诉re
我有两个实体,用户和电影。他们是很多双向的关系。我的问题是,当我通过我的控制器删除一部电影时,它也会删除所有与该电影相关的实体。My user和this user角色和movie实体。我要做什么,从表中删除电影实体,并保持用户与他的角色,而不是删除他们所有。
问题内容: 我将如何使用python检查列表并删除所有重复项?我不需要指定重复项是什么- 我希望代码找出是否存在重复项,如果有则将其删除,每个重复项仅保留一个实例。如果列表中有多个重复项,它也必须起作用。 例如,在下面的代码中,列表lseparatedOrbList有12个项目-一项被重复六次,一项被重复五次,并且只有一个实例。我希望它更改列表,因此只有三项-每一项,并且它们之前出现的顺序相同。我