- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 User、Property 和这两项 UserPropertyJunction 的联结表之间创建了一个关系,可以将其可视化为下图中的关系
用户实体,而不是 customers
,即
@Entity(tableName = "user")
data class UserEntity(
@PrimaryKey
val userId: Long,
val firstName: String,
val lastName: String,
val email: String,
val password: String
)
属性,而不是
products
,
@Entity(
tableName = "property",
primaryKeys = ["id"]
)
data class Property(
val id: Int,
val update: Int,
val categoryId: Int,
val title: String,
val subject: String,
val type: String,
val typeId: Int
}
和连接表而不是 product_helper
@Entity(
tableName = "user_property_junction",
primaryKeys = ["userAccountId", "propertyId"],
// Foreign Keys
foreignKeys = [
ForeignKey(
entity = User::class,
parentColumns = ["userId"],
childColumns = ["userAccountId"],
onDelete = ForeignKey.NO_ACTION
),
ForeignKey(
entity = Property::class,
parentColumns = ["id"],
childColumns = ["propertyId"],
onDelete = ForeignKey.NO_ACTION
)
]
)
data class UserPropertyJunction(
val userAccountId: Long,
val propertyId: Int
)
并创建了关系类
data class UserWithFavorites(
@Embedded
val user: User,
@Relation(
parentColumn = "userId",
entity = Property::class,
entityColumn = "id",
associateBy = Junction(
value = UserPropertyJunction::class,
parentColumn = "userAccountId",
entityColumn = "propertyId"
)
)
val propertyList: List<Property>
)
还需要获取用户显示和喜欢这些属性的次数的数据。
displayCount
和
favorite
特性
data class UserPropertyJunction(
val userAccountId: Long,
val propertyId: Int,
val displayCount:Int=0,
val favorite:Boolean=false
)
我的第一个问题是据我所见,对联结表或关联表没有太多经验,它们只存储应该关联的表的外键,是否可以将值字段添加到联结表?
data class PropertyStatus(
val userAccountId: Long,
val propertyId: Int,
val displayCount:Int=0,
val favorite:Boolean=false
)
并将它们联系起来?
data class UserWithProperties(
@Embedded
val user: User,
@Relation(
parentColumn = "userId",
entity = Property::class,
entityColumn = "id",
associateBy = Junction(
value = UserPropertyJunction::class,
parentColumn = "userAccountId",
entityColumn = "propertyId"
)
)
val propertyList: List<Property>
)
并根据您对第一个问题的回答从状态表或联结表中获取 SELECT
UserWithProperties
与
@Embedded
或
@Relation
最佳答案
据我所知,不幸的是,没有开箱即用的方法,您如何仅使用 Room 的工具(@Relation、@Embedded、@Junction)来解决您的用例。
My first question is as far as i have seen, not much experience with junction or associative tables, they only store foreign keys for the tables that should associate with, is it okay to add value fields to junction table?
@Relation-with-@Junction API
不支持从此联结表中获取要包含到结果类的任何字段(这些外键仅用于绑定(bind))。这就是为什么从技术上讲,您可以将一些字段添加到联结表(它似乎是您应该保留这些值的最合适的位置),但实际上您无法使用 @Junction 获取这些字段。
data class UserPropertyJunction(
val userAccountId: Long,
val propertyId: Int,
val displayCount:Int=0,
val favorite:Boolean=false
)
然后添加辅助类(不是实体)并将其用作查询结果:
data class UserWithFavorites(
val displayCount:Int,
val favorite:Boolean,
@Relation(
parentColumn = "userAccountId",
entityColumn = "userId"
)
val user: UserEntity,
@Relation(
parentColumn = "propertyId",
entityColumn = "id"
)
val property: Property,
)
当然,这不是你想要的,但至少你可以处理它,它是开箱即用的,你可以使用 LiveData/Flow/RxJava(例如,在得到这个之后,你可以尝试使用一些转换运营商以某种方式将其更改为所需的格式)
data class PropertiesWithFavorites(
val displayCount:Int,
val favourite:Boolean,
val propertyId: Long,
@Relation(
parentColumn = "propertyId",
entityColumn = "id"
)
val property: Property
)
和道法:
@Query("SELECT * FROM user_property_junction as j where j.userAccountId =:userId")
fun getPropertiesByUser(userId: Long): List<PropertiesWithFavorites>
关于Android Room Many to Many Junction 表获得超过 2 个表的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63887061/
我正在尝试设置清理阶段以使用 maven-junction-plugin,因为我正在从 Linux 和 Windows 构建项目。这是我的联结插件的 pom.xml 部分:
Commission Junction 的 Commission Detail Service (REST) 的“action-status”响应字段的可能值是什么?我尝试搜索他们的 API 帮助,但
我正在编写一个批处理文件 (.bat),但我无法找到一种方法来确定我有路径的给定目录是真实目录还是 Junction(在 Windows 7 上使用 创建) mklink/j).谁能指出我正确的方向?
此代码有效: (3,6...66).contains( 9|21 ).say # OUTPUT: «any(True, True)» 并返回 Junction .也是tested ,但是 not
有人知道是否有办法通过跟踪直接链接到 Commission Junction 上的广告商吗?我们不想依赖提要中发送的链接,因为其中很多都是垃圾链接。 我想要的是一个仅转到广告商主页并且仍然允许我们接收
我有一个联结表,用于存储测试和测试中的问题之间的关系,将 testFK 和 questionFK 设置为复合主键以防止重复条目。 联结表: +--------+------------+
我用它来获取目录 foo 的内容:FindFirstFile(L"foo\\*", &findData)。当 foo 是一个常规目录时,它工作得很好。但是,当 foo 是指向另一个目录(使用 mkli
我使用 c#、linq 和 EF4。 我的数据库中有两个表在我的概念模型中表示: 数据库表: CmsContents CmsRelatedContents (Junction table) 实体类型:
更新 : 这个问题已经演变成一个关于NTFS filesystem filter driver 的问题。如何在备份应用程序和其他需要了解的程序中使用Win32 API 磁盘上的文件到底是什么 ?路口和
我有一个数据库,其中许多“帖子”可以有许多“标签”。我在帖子和标签之间设置了一个名为“post_tag”的联结表但是 post_tag 中帖子和标签的外键列名称不同。 这是我在 post_tag 模型
我一直在拼命寻找一个 Javascript MVC 框架来创建具有 Rails 后端的富客户端应用程序,我遇到了 junction framework 。由于它与 Rails 和离线功能的相似性,它对
我正在尝试在中间的 2 个 div 之间添加一个连接点(一条线)。 ....1 ....2
大家好, 我正致力于在 Force.com 平台上定制一些功能。我有一个问题问你;我不太确定这是否可能! 我有什么?:2 个自定义对象 - abc 和 pqr。 Abc 是标准对象 Account 和
有人成功使用过 CJ 网络服务吗?即使我的应用程序是 .net(显然是它们的错误),我还是不断收到 java.lang.NullPointerException。 CJ 支持甚至不知道网络服务是什么。
在这个程序中: use v6; my $j = +any "33", "42", "2.1"; gather for $j -> $e { say $e; } # prints 33422
我有一个 user_id 和 favorite_property_id 的联结表,现在我想删除用户最喜欢的属性,我在存储库中尝试了以下方法,但它不起作用,有谁知道我如何删除他的条目连接表? 用户.ja
我试图在我的程序中获取一个连接的目标,但我设法做到这一点的唯一方法是: 请求备份权限 p-调用带有特殊参数的 CreateFile 以获得文件/目录的句柄。 DeviceIoControl 调用以获取
我在这里发现了非常相似的问题,但没有一个与我正在寻找的完全匹配。我发现的两个最接近的线程是(是的,它们是不同的线程): NHibernate many-to-many criteria (1) NHi
上下文: 我有一个方法可以创建一个很长的 Conjunction : public static Conjunction GetLongConjunction() { Conjunction
我有 3 个表:persons、places 和 person_place。 每个人都可以有很多喜欢的地方,就像每个地方都可以被很多人/人“收藏”一样。 CREATE TABLE persons (
我是一名优秀的程序员,十分优秀!