[英]Table does not exists error in hibernate
當Car和Van擴展Vehicle時,我的程序中有繼承關系。 就我而言,這是強制性參與,因此,如果有車輛,則必須是汽車或廂式貨車。 因此,我僅使用兩個表(car&van),這些表具有用於超類和子類字段的列。
public class Vehicle {
protected int vin;
protected String brand;
public Vehicle(){}
public Vehicle(int vin, String brand) {
this.vin = vin;
this.brand = brand;
}
public int getVin() {
return vin;
}
public void setVin(int vin) {
this.vin = vin;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
Car.java
public class Car extends Vehicle {
private String model;
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
public Car(){
}
public Car(int vin, String brand, String model) {
this.vin = vin;
this.brand = brand;
this.model = model;
}
Van.java
public class Van extends Vehicle {
private String vanModel;
public Van(){}
public Van(int vin,String brand,String vanModel) {
this.vanModel = vanModel;
this.vin=vin;
this.brand=brand;
}
public String getVanModel() {
return vanModel;
}
public void setVanModel(String vanModel) {
this.vanModel = vanModel;
}
映射文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="Vehicle">
<id name="vin" type="int" column="vin">
<generator class="increment"/>
</id>
<property name="brand" column="brand"/>
<union-subclass name="Car" table="car">
<property name="model" column="model"/>
</union-subclass>
<union-subclass name="Van" table="van">
<property name="vanModel" column="vanmodel"/>
</union-subclass>
</class>
</hibernate-mapping>
當我嘗試將任何東西插入汽車或貨車桌子時,出現以下錯誤。 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:表'myjdbc.vehicle'不存在。 我對此一無所知。 我從來沒有提到過一個表名是車輛。 那我為什么會收到這個錯誤? 由於我剛進入休眠狀態,請給我詳細的答案。
假設沒有具體的車輛,將車輛類定義為抽象,然后將其設置為mappingSuperclass 。
有一個在hbm.xml中這樣的例子在這里
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.