救命啊!我只在一对多关系数据库中插入POJO时遇到问题。我有POJO和误解如何插入数据库中的所有列表???
@Entity
data class Street(
@PrimaryKey(autoGenerate = true)
var id: Int = 0
) {
@Ignore
var houses: List<House>? = listOf()
}
@Entity
data class House(
@PrimaryKey(autoGenerate = true)
var id: Int = 0,
var streetId: Int
) {
@Ignore
var flats: List<Flat>? = listOf()
}
@Entity
data class Flat(
@PrimaryKey(autoGenerate = true)
var id: Int = 0,
var houseId: Int
)
请帮帮我伙计们!
您需要删除@ignore
注释并使用类型转换器。
IMHO最好只保存pojo的ID,而不保存整个对象,例如。
@Entity
data class House(
@PrimaryKey(autoGenerate = true)
var id: Int = 0,
var streetId: Int,
var flatIds: List<Int>? = listOf()
)
当你需要这些公寓的时候,只要通过这些ID查询公寓就行了
class YourObjectConverter {
@TypeConverter
fun listToJson(value: List<YourObject>?): String {
return Gson().toJson(value)
}
@TypeConverter
fun jsonToList(value: String): List<YourObject>? {
val objects = Gson().fromJson(value, List<YourObject>::class.java) as Array<YourObject>
val list = objects.toList()
return list
}
}
我在用户和角色之间有多对多的关系 用户实体: 角色实体: 用户角色实体: 服务等级: 样本输入: 1:首次储蓄-成功 示例输入2:向同一用户保存其他角色-失败 异常:(尝试在链接实体中的用户和角色中插入null) 在用户实体的映射或实用方法中是否缺少某些内容。非常感谢您的帮助。
我试图坚持两个实体,它们有一对一和多对一的关系。 我正在尝试将表单集合嵌入到表单中。 我有一个多对一相关的实体,每次我创建一个新的课程简历,它与Candidat列相关candidat_id_id为空。 除了数据可数据中的Candidat id之外,只有实体Curendar umVitae被成功创建和持久化。 简历表 id|titre|candidat_id_id|id_education cand
我的问题可能看起来很傻。我是JPA的新手,试图理解它的基本概念。我发现有一种@multi-to-one实体关系可以在那里使用。我的问题是,为什么有人想在拥有“一对多”关系的同时使用它?我的意思是,拥有后一个就足够了解关系并发送查询了,对吗?如果没有,请解释。也许我对这两种关系的看法是完全错误的。请提供一个场景作为示例,以便我更好地理解。谢谢
问题内容: 我有一个类A {Set b .....},它把B类的引用保存为Set。这是一对多的关系。这两个类在oracle中都有音序器。我在所有的hibernate注释中都添加了层叠。当我保存A类时,它给了我无法插入null B.a_id的错误。A-id在我的数据库中不能为空。我该如何保持这种关系。 问题答案: 这是A-> B的单向关系。表B中的a_id列不可为空。当hibernate试图保存类B
当我有用户并且他们有其他用户作为朋友时,我想让应用程序类似于facebook。因此,我创建了一个实体
我有两张一对一的表: 用户: 用户数 我的实体: 使用者 用户账户 我试图坚持这一点,但我有错误: 当我尝试坚持我得到这个错误: 严重:Servlet。路径为[/ibank]的上下文中servlet[appServlet]的服务()引发了异常[Request processing failed;嵌套异常为javax.persistence.PersistenceException:org.hibe