Hibernate Unknown entity(我知道之前有人问过......)[重复]

Posted

技术标签:

【中文标题】Hibernate Unknown entity(我知道之前有人问过......)[重复]【英文标题】:Hibernate Unknown entity (I know it has been asked before...) [duplicate] 【发布时间】:2016-11-20 02:20:58 【问题描述】:

我知道这个问题已经被问过一千次了,但我无法解决我的问题...我在互联网上搜索了整个互联网并找不到解决方案...这是错误!

休眠 5.1

配置文件:

<?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.url">jdbc:mysql://localhost:3306</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password"/>
<property name="hibernate.default_schema">protein_tracker</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<mapping resource="com/twentyone/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>

映射文件:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated Jul 18, 2016 9:29:14 PM by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
<class name="com.twentyone.User" table="USERS">
    <id name="id" type="int">
        <column name="ID" />
        <generator class="assigned" />
    </id>
    <property name="name" type="java.lang.String">
        <column name="NAME" />
    </property>
    <property name="goal" type="int">
        <column name="GOAL" />
    </property>
    <property name="total" type="int">
        <column name="TOTAL" />
    </property>
</class>
</hibernate-mapping>

HibernateUtilities 类

package com.twentyone;

import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;

public class HibernateUtilities 

private static SessionFactory sessionFactory;
private static ServiceRegistry serviceRegistry;

static 
    try 
        Configuration configuration = new Configuration().configure();

        serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
        sessionFactory = configuration.buildSessionFactory(serviceRegistry);

     catch (HibernateException e1) 
        e1.printStackTrace();
        System.out.println("Problem");
    


public static SessionFactory getSessionFactory() 
    return sessionFactory;

主要

 package com.twentyone;

import org.hibernate.Session;

public class Program 
public static void main(String[] args) 

    System.out.println("Hayden");

    Session session = HibernateUtilities.getSessionFactory().openSession();
    session.beginTransaction();

    User user = new User();
    user.setName("Hayden");
    user.setGoal(250);
    session.save(user);

    session.getTransaction().commit();
    session.close();
    HibernateUtilities.getSessionFactory().close(); 


【问题讨论】:

请添加Hibernate版本、xml配置、配置代码。 @v.ladynev 所以……我编辑了这个问题……你能帮忙吗? 【参考方案1】:

已经是经典问题了:不能用Hibernate 4的配置代码来配置Hibernate 5。

https://***.com/a/32711654/3405171

只需使用:

Configuration configuration = new Configuration().configure();
sessionFactory = configuration.buildSessionFactory();

如果您在hibernate.properties 中有属性,则上述代码有效。你有它在hibernate.cfg.xml。我不记得了,可能它也适用于这种情况。

无论如何,您都可以使用新的 Hibernate 5 Bootstrap API。

【讨论】:

是的......我猜它很好......现在它说“没有选择数据库” @Hayden 为什么不指定密码?尝试在日志或控制台中查看,Hibernate 是否加载了属性? 我使用phpMyAdmin,我的数据库没有密码 @Hayden 你在 Hibernate 日志中看到 org.hibernate.dialect.MySQLDialect 了吗? 现在有那些错误... 1-"解析 JNDI 名称 [] 时出错" 2-"需要在环境或系统属性中指定类名,或作为小程序参数,或在应用程序中资源文件:java.naming.factory.initial" 3-"无法执行语句" 4-"未选择数据库"...对不起,我是 Hibernate 中的新手/新手

以上是关于Hibernate Unknown entity(我知道之前有人问过......)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate报错org.hibernate.MappingException: Unknown entity: 。。。。

org.hibernate.MappingException: Unknown entity 使用annotation,javax.persisitence包

Hibernate Unknown entity(我知道之前有人问过......)[重复]

@ManyToOne references an unknown entity:

使用 Spring & JPA,获取 java.lang.IllegalArgumentException: Unknown entity

Unknown Entity namespace alias 'BaseMemberBundle'.