2016-11-13 115 views
-1

试图运行一个简单的示例。但得到以下错误。可能是一个愚蠢的错误。MySQLSyntaxErrorException:'字段列表'中的未知列'vehicle_vehicleId'

错误:

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'。 我经历了以下的答案。但它实际上没有帮助。

请帮助

+0

这看起来像一个MySQL错误给我,而不是休眠错误。 –

+0

@SamOrozco。是的。其实它重新启动MySQL服务器后得到解决。但是,成功地运行主类一次之后,我再次面对这个问题 – Rehman

+0

尝试增加@Column(name =“vehicle_vehicle”)以上@OneToOne –

回答

0

我看不出@OneToOne描绘两个关系之间的关系@JoinColumnmappedBy财产。请通过下面的例子,它会给你清晰的想法@OneToOne

One To One Relationship Example

+0

如果我不写'@ JoinColumn'冬眠应该创造自己的新列* tableName_columnName *格式 – Rehman

+0

是的,这将被创建,但在这种情况下,列中的所有者关系不在其他关系中。也许这是造成这个问题的原因。 –

相关问题