Java org.hibernate.MappingException:未知实体-根本原因是什么?
我刚开始冬眠。我遵循一个教程,并试图执行一个简单的代码,但我得到下面的错误Java org.hibernate.MappingException:未知实体-根本原因是什么?,java,hibernate,Java,Hibernate,我刚开始冬眠。我遵循一个教程,并试图执行一个简单的代码,但我得到下面的错误 org.hibernate.MappingException: Unknown entity: 我使用的注释和配置文件也完全符合教程的要求。我在谷歌上搜索过,但没有得到正确答案 这是我的密码 package org.anne; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transac
org.hibernate.MappingException: Unknown entity:
我使用的注释和配置文件也完全符合教程的要求。我在谷歌上搜索过,但没有得到正确答案
这是我的密码
package org.anne;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
public class Demo {
public static void main(String[] args) {
Paper p = new Paper();
p.setPname("indu");
SessionFactory sf = HibernateUtil.getSessionFactory();
Session ses = sf.openSession();
Transaction tr = ses.beginTransaction();
ses.save(p);
tr.commit();
ses.close();
sf.close();
}
}
package org.anne;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
public class HibernateUtil {
static SessionFactory sf;
public static SessionFactory getSessionFactory()
{
Configuration cf = new Configuration();
cf.configure("hibernate.cfg.xml");
StandardServiceRegistryBuilder srv = new StandardServiceRegistryBuilder();
StandardServiceRegistry sr = srv.applySettings(cf.getProperties()).build();
sf = cf.buildSessionFactory(sr);
return sf;
}
}
package org.anne;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "PAPER")
public class Paper {
int pid;
String pname;
@Id
@Column(name = "PID")
@GeneratedValue(strategy = GenerationType.AUTO)
public int getPid() {
return pid;
}
public void setPid(int pid) {
this.pid = pid;
}
@Column(name = "PNAME")
public String getPname() {
return pname;
}
public void setPname(String pname) {
this.pname = pname;
}
}
<?xml version="1.0"?>
<!DOCTYPE hibernate-configuration SYSTEM "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd" >
<hibernate-configuration>
<session-factory>
<property name = "connection.driver_class">com.mysql.jdbc.Driver</property>
<property name = "connection.url">jdbc:mysql://localhost:3306/test</property>
<property name = "connection.username">root</property>
<property name = "connection.password">abc123</property>
<property name = "hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
<property name = "hibernate.show_sql">true</property>
<mapping class = "org.anne.Paper" />
</session-factory>
</hibernate-configuration>
package org.anne;
导入org.hibernate.Session;
导入org.hibernate.SessionFactory;
导入org.hibernate.Transaction;
公开课演示{
公共静态void main(字符串[]args){
纸张p=新纸张();
p、 setPname(“印度”);
SessionFactory sf=HibernateUtil.getSessionFactory();
Session ses=sf.openSession();
事务tr=ses.beginTransaction();
ses.save(p);
tr.commit();
ses.close();
sf.close();
}
}
包org.anne;
导入org.hibernate.SessionFactory;
导入org.hibernate.boot.registry.StandardServiceRegistry;
导入org.hibernate.boot.registry.StandardServiceRegistryBuilder;
导入org.hibernate.cfg.Configuration;
公共类HibernateUtil{
静态会话工厂sf;
公共静态SessionFactory getSessionFactory()
{
配置cf=新配置();
cf.configure(“hibernate.cfg.xml”);
StandardServiceRegistryBuilder srv=新的StandardServiceRegistryBuilder();
StandardServiceRegistry sr=srv.applySettings(cf.getProperties()).build();
sf=cf.buildSessionFactory(sr);
返回sf;
}
}
包org.anne;
导入javax.persistence.Column;
导入javax.persistence.Entity;
导入javax.persistence.GeneratedValue;
导入javax.persistence.GenerationType;
导入javax.persistence.Id;
导入javax.persistence.Table;
@实体
@表(name=“纸张”)
公开课论文{
int-pid;
字符串pname;
@身份证
@列(name=“PID”)
@GeneratedValue(策略=GenerationType.AUTO)
公共int getPid(){
返回pid;
}
公共无效设置pid(内部pid){
this.pid=pid;
}
@列(name=“PNAME”)
公共字符串getPname(){
返回pname;
}
公共void setPname(字符串pname){
this.pname=pname;
}
}
com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/test
根
abc123
org.hibernate.dialogue.mysql5dialogue
真的
如果您自己启动Hibernate,请确保使用AnnotationConfiguration类而不是Configuration类。下面是一个使用(遗留)HibernateUtil方法的示例:
package hello;
import org.hibernate.*;
import org.hibernate.cfg.*;
import test.*;
import test.animals.Dog;
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static {
try {
sessionFactory = new AnnotationConfiguration()
.configure().buildSessionFactory();
} catch (Throwable ex) {
// Log exception!
throw new ExceptionInInitializerError(ex);
}
}
public static Session getSession()
throws HibernateException {
return sessionFactory.openSession();
}
}
更多