簡體   English   中英

表在休眠中不存在錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM