亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

記一次 Hibernate 數(shù)據(jù)表創(chuàng)建失敗

gnehc / 3512人閱讀

摘要:實(shí)體關(guān)系映射建了四個實(shí)體,啟動程序。打開數(shù)據(jù)庫,發(fā)現(xiàn)只生成了三張表。與都創(chuàng)建成功,只有表創(chuàng)建失敗。同時,控制臺也報(bào)出了如下錯誤大致意思就是你的表中有一個語法錯誤,導(dǎo)致了創(chuàng)建表失敗。原因猜測應(yīng)該是屬于中的關(guān)鍵字,所以會報(bào)語法錯誤。

實(shí)體關(guān)系映射

建了四個實(shí)體,啟動程序。

打開數(shù)據(jù)庫,發(fā)現(xiàn)只生成了三張表。

OrderDetail、ProductCategoryProductInfo都創(chuàng)建成功,只有Order表創(chuàng)建失敗。

同時,控制臺也報(bào)出了如下錯誤:

org.hibernate.tool.hbm2ddl.SchemaExport  : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near "order" at line 1
org.hibernate.tool.hbm2ddl.SchemaExport  : HHH000389: Unsuccessful: create table order (id varchar(255) not null, amount decimal(19,2), buyer_address varchar(255), buyer_name varchar(255), buyer_openid varchar(255), buyer_phone varchar(255), create_time datetime, pay_status integer, status integer, update_time datetime, primary key (id))
org.hibernate.tool.hbm2ddl.SchemaExport  : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near "order (id varchar(255) not null, amount decimal(19,2), buyer_address varchar(255" at line 1
org.hibernate.tool.hbm2ddl.SchemaExport  : HHH000389: Unsuccessful: alter table order_detail add constraint FKplam7wxc4tjbgex0xyk8f0qxo foreign key (order_id) references order (id)
org.hibernate.tool.hbm2ddl.SchemaExport  : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near "order (id)" at line 1

大致意思就是你的Order表中有一個SQL語法錯誤,導(dǎo)致了創(chuàng)建order表失敗。

Order實(shí)體

語法錯誤,第一反應(yīng)就是去看看Order實(shí)體,應(yīng)該是哪里寫錯了。

package com.imooc.spring.entity;

import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.UpdateTimestamp;

import javax.persistence.Entity;
import javax.persistence.Id;
import java.math.BigDecimal;
import java.util.Calendar;

/**
 * @author zhangxishuo on 2018/4/25
 * 訂單主表
 */

@Entity
public class Order {

    public static final Integer NEW = 0;         // 新下單

    public static final Integer FINISH = 1;      // 已完結(jié)

    public static final Integer CANCEL = 2;      // 已取消

    public static final Integer WAIT =  0;       // 未支付

    public static final Integer SUCCESS = 1;     // 支付成功

    @Id
    private String id;                    // 訂單id

    private String buyerName;             // 買家姓名

    private String buyerPhone;            // 買家電話

    private String buyerAddress;          // 買家地址

    private String buyerOpenid;           // 買家Openid

    private BigDecimal amount;            // 總金額

    private Integer status = NEW;         // 訂單狀態(tài)

    private Integer payStatus = WAIT;     // 支付狀態(tài)

    @CreationTimestamp
    private Calendar createTime;          // 創(chuàng)建時間

    @UpdateTimestamp
    private Calendar updateTime;          // 更新時間

    public Order() {
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getBuyerName() {
        return buyerName;
    }

    public void setBuyerName(String buyerName) {
        this.buyerName = buyerName;
    }

    public String getBuyerPhone() {
        return buyerPhone;
    }

    public void setBuyerPhone(String buyerPhone) {
        this.buyerPhone = buyerPhone;
    }

    public String getBuyerAddress() {
        return buyerAddress;
    }

    public void setBuyerAddress(String buyerAddress) {
        this.buyerAddress = buyerAddress;
    }

    public String getBuyerOpenid() {
        return buyerOpenid;
    }

    public void setBuyerOpenid(String buyerOpenid) {
        this.buyerOpenid = buyerOpenid;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getPayStatus() {
        return payStatus;
    }

    public void setPayStatus(Integer payStatus) {
        this.payStatus = payStatus;
    }

    public Calendar getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Calendar createTime) {
        this.createTime = createTime;
    }

    public Calendar getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Calendar updateTime) {
        this.updateTime = updateTime;
    }
}
解決方案

看看這個實(shí)體,并沒有找到有什么錯誤。

然后就去對比慕課網(wǎng)的代碼,發(fā)現(xiàn)講師建的訂單實(shí)體名為OrderMaster,我這里的代碼與講師的代碼除了實(shí)體名不同其他完全一樣。

試著將實(shí)體名從Order修改為OrderMaster。

改完名,妥妥地成功。

原因

猜測應(yīng)該是Order屬于SQL中的關(guān)鍵字,所以會報(bào)語法錯誤。

把語法錯誤的報(bào)錯信息加上orderGoogle一下。

Unsuccessful: create table order You have an error in your SQL syntax; order

果然,StackOverflow給出了一個非常完美的解釋。

Order實(shí)體會默認(rèn)映射到order表,但是ordersql中的一個服務(wù)關(guān)鍵字。所以生成order表的時候異常就發(fā)生了。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/69621.html

相關(guān)文章

  • 一次Spring Batch完整入門實(shí)踐

    摘要:什么是作為的子項(xiàng)目,是一款基于的企業(yè)批處理框架。首先,運(yùn)行的基本單位是一個,一個就做一件批處理的事情。總結(jié)為我們提供了非常實(shí)用的功能,對批處理場景進(jìn)行了完善的抽象,它不僅能實(shí)現(xiàn)小數(shù)據(jù)的遷移,也能應(yīng)對大企業(yè)的大數(shù)據(jù)實(shí)踐應(yīng)用。 前言 本文將從0到1講解一個Spring Batch是如何搭建并運(yùn)行起來的。本教程將講解從一個文本文件讀取數(shù)據(jù),然后寫入MySQL。 什么是 Spring Batc...

    Baaaan 評論0 收藏0
  • 一次慘烈的阿里面試經(jīng)歷

    摘要:當(dāng)我們的需求出現(xiàn)變動時,工廠模式會需要進(jìn)行相應(yīng)的變化??偨Y(jié)來說,要想成功進(jìn)行一次阿里巴巴的面試,你需要了解甚至掌握以下內(nèi)容語言,尤其是線程原理數(shù)據(jù)庫事務(wù),加鎖,重點(diǎn)分布式設(shè)計(jì)模式可以說是涉及范圍非常廣了。 showImg(https://segmentfault.com/img/bV8cSY?w=576&h=432); 前言 今天本是一個陽光明媚,鳥語花香的日子。于是我決定在逛街中感受...

    Eastboat 評論0 收藏0
  • 【踩坑記錄】一次MySQL主從復(fù)制延遲的坑

    摘要:最近開發(fā)中遇到的一個主從延遲的坑,記錄并總結(jié),避免再次犯同樣的錯誤。運(yùn)行時查詢?yōu)榭?,?zhí)行完畢后查詢時內(nèi)容存在,初步懷疑是主從延遲問題。報(bào)錯只是部分失敗,確定是主從延遲的問題。接下來,會去學(xué)習(xí)主從復(fù)制的原理,敬請期待。 最近開發(fā)中遇到的一個MySQL主從延遲的坑,記錄并總結(jié),避免再次犯同樣的錯誤。 情景 一個活動信息需要審批,審批之后才能生效。因?yàn)橹蠡顒右庉?,編輯后也可能觸發(fā)審批,審...

    cartoon 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<