我正在尝试将 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>
答案 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注解。