2016-11-13 60 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

是的,這將被創建,但在這種情況下,列中的所有者關係不在其他關係中。也許這是造成這個問題的原因。 –

相關問題