【问题标题】:Hibernate Unknown entity (I know it has been asked before...) [duplicate]Hibernate Unknown entity(我知道之前有人问过......)[重复]
【发布时间】: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 所以……我编辑了这个问题……你能帮忙吗?

标签: java hibernate


【解决方案1】:

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

https://stackoverflow.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 中的新手/新手
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-09
  • 2012-03-01
  • 2016-03-19
  • 2016-05-13
相关资源
最近更新 更多