我有一个springboot应用程序,其中我有一个postgres数据库,里面有一个电影院列表:
cinemadb=# select * from cinemas;
id | name
----+---------------------------
1 | London''s Electric Cinema
2 | Alamo Drafthouse
3 | Cineteca Matadero
4 | Cine-de Chef
5 | Castro Theatre
6 | Cine Thisio
这些影院中的每一个都显示一部或多部电影(在另一个数据库中)。我创建了一个关系表:
cinemadb=# select * from cinema_movie;
cinema_id | movie_id
-----------+----------
1 | 1
1 | 5
1 | 8
2 | 2
3 | 3
3 | 9
4 | 1
4 | 2
4 | 8
4 | 9
6 | 9
7 | 9
7 | 1
8 | 1
在最后一个表中,cinema_id是链接到cinemas表中id的外键。movie_id只是一个表示另一个数据库中的id的整数。
我的实体表示形式:
@Entity
@Table(name = "cinemas")
data class Cinema(
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
val id: Long = -1,
val name: String = "",
@OneToMany(mappedBy = "cinema", cascade = [CascadeType.ALL])
@JsonIgnore
val movies: Set<CinemaMovies> = HashSet()) {
override fun toString(): String {
return "Cinema[id=$id, name=$name]"
}
}
@Entity
@Table(name = "cinema_movie")
data class CinemaMovies(
@Id
@ManyToOne
@JoinColumn(name="cinema_id", nullable=false)
val cinema: Cinema? = null,
@Id
@Column(name = "movie_id")
val movieId: Long = -1): Serializable
当我试着去看属于个人影院的电影时,问题就来了:
null
我做错了什么?
这似乎是许多人的关系,而不是一个人的关系。同样,在单个实体类中,您不能用@id注释两个实例变量。您必须使用create ManyToMany Relationship。
参考示例:https://www.baeldung.com/hibernate-many-to-many
问题内容: 我有一对一的关系,但是hibernatetool在生成模式时抱怨。这是显示问题的示例: 人与OtherInfo具有一对一关系: 人是OtherInfo的拥有方。OtherInfo是拥有方,因此person用于在Person中指定属性名称“ otherInfo”。 使用hibernatetool生成数据库架构时出现以下错误: 知道为什么吗?我是在做错什么还是这是Hibernate错误?
我在hibernate中搜索建立关系的各种可能性,遇到了下面的代码片段
我有两个实体,它们之间有一对一的联系。这两个实体都具有复合自然主键。一个实体使用其自然组合键中的1个字段和一个额外列引用另一个实体。我在持久化这些实体方面有问题,Hibernate首先插入引用对象(根据我的理解,这是HallPlacesSchema),因此在插入引用对象之前,我立即得到约束违反错误(Hall)。 在单个会话中,我完全按照该顺序坚持霍尔,然后是霍尔广场化学时,问题就出现了。 当会话刷
孩子:@EDIT感谢@MithatKonuk 和家人:@EDIT感谢@米塔科努克 我想得到作为家庭一部分的孩子的名单。我尝试进行查询:@编辑感谢@MithatKonuk 当我尝试运行它时,总是会出现错误: 我需要你的帮助。 @编辑好的,所以我将此代码更新为完整的实体。你还需要更多吗?我很抱歉,也许这很容易,但是我正在学习Hibernate,我不知道这个cos出了什么问题。谢谢你的回答。
我有两个类:< code>User和< code>UserProfile。 用户类别: 用户配置文件类: 当我使用此代码时,我在具有多对多关系的表用户配置文件中获得重复的实体。我使用 函数来保存对象。我做错了什么? 然后我删除 cascadeType,出现错误:对象引用未保存的瞬态实例 - 在刷新之前保存瞬态实例。 Hibernate日志:
我想在(您可以将其视为Student)实体和实体之间实现一个@ManyTomany单向的。很简单,一个教室可以有很多学生,而学生可以有很多教室。我希望它是单向的,因为我希望班级只知道它包含什么学生,学生不必知道他们有什么班级。这就是我目前所拥有的: ClassRoom.java Account.java 我通过以下代码保存它(使用Spring JPA): 但我得到了以下错误: 下面是StackTr