无法使用休眠在数据库中创建对象

时间:2021-03-31 19:31:55

标签: java hibernate

我正在尝试将 hibernate 与我的数据库连接并在表中插入一个对象。 但它显示 org.hibernate.MappingException 错误,然后是一系列错误,如图所示。如果有人可以提供帮助,我将不胜感激。 这是我的代码片段: 应用程序.java

    package com.mihir.hibDemo;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.Transaction;
    import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
    import org.hibernate.cfg.Configuration;

    public class App 
{
    public static void main( String[] args ) 
    {
        Person p1 = new Person();
        p1.setId(6);
        p1.setName("Nimisha");
        
        Configuration con = new Configuration().configure().addAnnotatedClass(Person.class);
        StandardServiceRegistryBuilder sr = new StandardServiceRegistryBuilder().applySettings(con.getProperties());
        SessionFactory sf = con.buildSessionFactory(sr.build());
        Session s = sf.openSession();
        Transaction ts = s.beginTransaction();
        s.save(p1);
        ts.commit();
    }
}
    

Person.java

包 com.mihir.hibDemo;

public class Person {
        private int id;
        private String name;
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
}

hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.password">0924</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/college</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="hibernate.hbm2ddl.auto">create</property>
        <mapping class="com.mihir.hibDemo.Person"/>
    </session-factory>
</hibernate-configuration>

errors

3 个答案:

答案 0 :(得分:0)

您缺少@Entity 注释。

@Entity
@Table(name = "persons")
public class Person {

答案 1 :(得分:0)

@Entity 是一种让 hibernate 知道它是一个表的方法。 你可以在这里阅读更多: https://docs.jboss.org/hibernate/annotations/3.5/reference/en/html/entity.html#entity-hibspec-entity

答案 2 :(得分:0)

这个问题是通过在 Person.java 中导入 javax.persistence.Id 解决的 然后在id变量的声明前加上@Id注解。

相关问题