gpt4 book ai didi

java - JPA2.0 中的 @OneToOne 单向映射——在持久化时出现 SQL 错误

转载 作者:行者123 更新时间:2023-12-04 05:58:37 25 4
gpt4 key购买 nike

我不知道如何声明 OneToOne 单向关系。 TripDeparture 模型具有 Trip 模型的外键(这就是 DB 的设置方式)。当我尝试添加一个带有设置为 null 的离开位置的行程时,我收到以下错误。当我取出 'departureLocation' 声明时,一切正常。

11891 [btpool0-2] WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 1054, SQLState: 42S22
11891 [btpool0-2] ERROR org.hibernate.util.JDBCExceptionReporter - Unknown column 'tripId' in 'field list'

我的想法快用完了……有人可以帮忙吗?

谢谢!

家长:
@Entity
@Table(name = "TRIP")
public class Trip implements Serializable {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;

@OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.REMOVE)
@JoinColumn(name = "tripId")
private TripDeparture departureLocation;

child :
@Entity
@Table(name = "DEPARTURE_LOCATION")
public class TripDeparture implements Serializable {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;

private int tripId;

最佳答案

这是我解决它的方法。我使用@PrimaryKeyJoinColumn 而不是使用@JoinColumn。我还删除了 DEPARTURE_LOCATION 中的“id”变量(和列),但这应该无关紧要。

家长:

@Entity
@Table(name = "TRIP")
public class Trip implements Serializable {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;

@OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.REMOVE)
@PrimaryKeyJoinColumn
private TripDeparture departureLocation;

child :
@Entity
@Table(name = "DEPARTURE_LOCATION")
public class TripDeparture implements Serializable {

@Id
private int tripId;

关于java - JPA2.0 中的 @OneToOne 单向映射——在持久化时出现 SQL 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9206974/

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