gpt4 book ai didi

java - Android Room 在 'incoming foreign key list' 中获取 'embedded entity' 中的元素计数?

转载 作者:行者123 更新时间:2023-12-05 00:15:36 25 4
gpt4 key购买 nike

我有 2 个实体,GradeStudent , Student有一个 外键 走向教室。嵌入式实体 ClassRoom看起来像这样

data class ClassRoom(

@Embedded
val level: ClassLevel

@Relation(
parentColumn = "id",
entityColumn = "ClassLevel"
)
val students: List<Student>,

// val strength: Int ?

)
我想要实现的是,使用 ClassRoomInstance.strength获取传入外键的计数。比使用 students.size 计算学生的大小
实现这一目标的方法是什么?
谢谢

最佳答案

您可以创建一个返回学生人数的查询。
考虑以下 POJO、电影和预告片

@Entity
data class Movie(
@PrimaryKey
val id: Int,
val title: String,
val overview: String
)
@Entity
data class Trailer(
@PrimaryKey
val id: Int,
val movieId: Int,
val trailerPath: String
)
想象一下,我想获得带有预告片数量的电影
data class MoviesWithTrailerCount(
@Embedded
val movie: Movie,
val trailerCount: Int
)
在 MovieDAO 中,我可以创建一个查询:
@Transaction
@Query("SELECT M.*, COUNT(T.id) AS trailerCount FROM Movie M INNER JOIN Trailer T ON T.movieId = M.id WHERE M.id = :id")
abstract suspend fun moviesAndTrailersCount(id: Int): MoviesWithTrailerCount
因此,基本上您想要实现的目标可以使用 SQL 查询和 @Embedded 来完成。

关于java - Android Room 在 'incoming foreign key list' 中获取 'embedded entity' 中的元素计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66027179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com