如何解决异常:表 'DBNAME.hibernate_sequence' 不存在

27 浏览
0 Comments

如何解决异常:表 'DBNAME.hibernate_sequence' 不存在

这个回答没有起作用。我仍然遇到同样的异常。

hibernate.cfg.xml


org.hibernate.dialect.MySQLDialect

true
update


这是我的版本:

pom.xml


  
    mysql
    mysql-connector-java
    8.0.26
  
  
    org.hibernate
    hibernate-core
    5.5.6.Final
  
  
    log4j
    log4j
    1.2.17
  

Main类

public static void main(String[] args) {
    // HibernateUtil是我的自定义Session工厂Java代码
    Session session = HibernateUtil.getSessionFactory().openSession(); 
    Transaction txn = session.getTransaction();
    try {
        txn.begin();
        Address address = new Address("200 E Main st", "Seattle", 211004);
        Person person = new Person("Tanzeel Mirza", address);
        session.save(person);
        txn.commit();
    }
    catch(Exception e) {
        //回滚代码
    }
    finally {
        if(session!=null) {
            session.close();
        }
    }
}

Person.java

...
@Entity
@Table(name="person")
public class Person {
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO) //<----- 也尝试过IDENTITY
    @Column(name="id")
    private long pid;
    @Column(nullable=false) 
    private String name;
    @Embedded
    private Address address;
    // getter和setter和构造函数
}

Address.java

@Embeddable
public class Address {
    @Column(name="street")
    private String street;
    @Column(name="city")
    private String city;
    @Column(name="zipcode")
    private long zipcode;
    // 构造函数
}

这是完整的日志:

[完整的日志链接](https://i.stack.imgur.com/Q1arc.png)

请指出我的错误。

0
0 Comments

解决异常:表 'DBNAME.hibernate_sequence' 不存在的问题

问题原因:问题是由于MySQL 5.x的冲突版本引起的。在hibernate.cfg.xml中,应该使用MySQL5Dialect而不是MySQLDialect。

解决方法:

在hibernate.cfg.xml中添加以下代码:


org.hibernate.dialect.MySQL5Dialect

以上就是解决该异常的方法。

0