尝试运行一个简单的例子。但得到以下错误。可能是一个愚蠢的错误。
错误:
MySQLSyntaxErrorException:未知列' vehicle_vehicleId'在 '字段列表'
代码:
User.java
public class User {
@Id @GeneratedValue
private Long userId;
@OneToOne
private Vehicle vehicle;
// Getter and setter of userId and vehicle
}
Vehicle.java:
@Entity
public class Vehicle {
@Id @GeneratedValue
private int vehicleId;
private String vehicleName;
// getter and setter of vehicleId and vehicleName
}
MainClass.java
SessionFactory sessionFact = new Configuration().configure().buildSessionFactory();
User user1 = new User();
Session session = sessionFact.openSession();
Transaction tx = session.beginTransaction();
user1.setUserAddress("USA");
user1.setUserName("John");
Vehicle vehicle1 = new Vehicle();
vehicle1.setVehicleName("Ferrari");
user1.setVehicle(vehicle1);
session.save(user1);
session.save(vehicle1);
tx.commit();
session.close();
我不确定为什么它无法创建映射列'vehicle_vehicleId'
。
我经历了以下SO回答。但它实际上并没有帮助。
请帮助
答案 0 :(得分:0)
我在@JoinColumn
中看不到描述两个关系之间关系的mappedBy
或@OneToOne
属性。请仔细阅读以下示例,它将为您提供有关@OneToOne
的清晰概念。
答案 1 :(得分:0)
对我来说,它是通过在数据库中手动添加列来解决的。