2
我试图用Hibernate来实现这一目标: JoinColumn一个外键
我的代码如下:
设备型号
@Entity
public class Device {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(nullable = false)
private long id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "fk_user", nullable = true, referencedColumnName = "ID")
private User user;
...
}
统计模型
@Entity
public class Statistic {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(nullable = false)
private long id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumns({ @JoinColumn(name = "fk_device", nullable = false, referencedColumnName = "ID"),
@JoinColumn(name = "fk_device_user", nullable = false, referencedColumnName = "fk_user") })
private Device device;
...
}
但是,有一个错误说有设备中没有逻辑列fk_user。
Caused by: org.hibernate.MappingException: Unable to find column with logical name: fk_user in device
我想这是因为fk_user是一个外键。但我该如何解决这个问题?谢谢。根据您的架构
感谢您的建议。我在'@ JoinColumn'中删除了所有第一个'referencesColumnName',但仍然收到错误消息'Caused by:org.hibernate.MappingException:无法在设备中查找具有逻辑名称:user_id的列。 – Chiu