hibernate5.x做xml映射运行报错,找不到实体
报错:
INFO: HHH10001001: Connection properties: {user=root, password=****}
七月 02, 2016 9:44:23 下午 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001003: Autocommit mode: false
七月 02, 2016 9:44:23 下午 org.hibernate.engine.jdbc.connections.internal.PooledConnections <init>
INFO: HHH000115: Hibernate connection pool size: 20 (min=1)
Sat Jul 02 21:44:23 CST 2016 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
七月 02, 2016 9:44:23 下午 org.hibernate.dialect.Dialect <init>
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLInnoDBDialect
Exception in thread "main" org.hibernate.MappingException: Unknown entity: com.wxmimperio.pojo.User
at org.hibernate.metamodel.internal.MetamodelImpl.entityPersister(MetamodelImpl.java:620)
at org.hibernate.internal.SessionImpl.getEntityPersister(SessionImpl.java:1596)
at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:104)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:192)
at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:38)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:177)
at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:32)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:73)
at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:668)
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:660)
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:655)
at HibernateTest.main(HibernateTest.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
*.cfg.xml
<hibernate-configuration>
<session-factory >
<!--配置数据库连接信息-->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/my_hibernate</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<!--数据库方言-->
<property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
<!--配置hbm.xml文件-->
<mapping resource="com/wxmimperio/pojo/User.hbm.xml"></mapping>
</session-factory>
</hibernate-configuration>
*.hbm.xml
<hibernate-mapping package="com.wxmimperio.pojo">
<class name="User" table="user" entity-name="entity">
<!--表的主键-->
<id name="id">
<!--主键生成策略-->
<generator class="native"></generator>
</id>
<!--实体类的名称-->
<property name="username"></property>
<property name="password"></property>
</class>
</hibernate-mapping>
实体类User
package com.wxmimperio.pojo;
public class User {
private int id;
private String username;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
Test主程序
import com.wxmimperio.pojo.User;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
public class HibernateTest {
public static void main(String args[]) {
Configuration cfg = new Configuration().configure();
ServiceRegistry registry = new StandardServiceRegistryBuilder()
.applySettings(cfg.getProperties()).build();
SessionFactory sf = cfg.buildSessionFactory(registry);
Session session = sf.openSession();
Transaction ts = session.beginTransaction();
User user = new User();
user.setUsername("wxmimperio");
user.setPassword("123456");
session.save(user);
ts.commit();
session.close();
}
}
加载hibernate.cfg.xml文件问题,5.x后build部分变了。