hibernate生成表出现问题!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hibernate生成表出现问题!相关的知识,希望对你有一定的参考价值。

2012-03-31 15:31:52,226 ERROR [org.hibernate.util.JDBCExceptionReporter] - Table 'class_info.t_user' doesn't exist
2012-03-31 15:31:52,228 ERROR [org.hibernate.event.def.AbstractFlushingEventListener] - Could not synchronize database state with session
org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
java.sql.BatchUpdateException: Table 'class_info.t_user' doesn't exist

user类里面有六个属性:String(number、name、password、)int age、char sex、Date birthday
我的配置文件时这样的(其他不重要的省略了):
user.hbm.xml:
<hibernate-mapping>
<class name="com.myself.userManger.User" table="t_user">
<id name="number">
<generator class="assigned"/>
</id>
<property name="name"/>
<property name="password"/>
<property name="age"/>
<property name="sex"/>
<property name="birthday"/>
</class>
</hibernate-mapping>

hibernate.xml:
<mapping resource="com/myself/userManger/user.hbm.xml"/>

我的测试单元程序代码是:
BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext-*.xml");
UserManagerImpl userManager = (UserManagerImpl)factory.getBean("userManager");
User user = new User();
user.setNumber("090601012");
user.setAge(22);
user.setBirthday(new Date(123456));
user.setName("XXX");
user.setPassword("497393102");
user.setSex('男');
userManager.addUser(user);
UserManagerImpl类里有:
public void addUser(User user)
this.getHibernateTemplate().save(user);


我真不知道错哪里了,配置文件也检查了N遍,难啊!求解释!!!
这是出错之后的错误信息截图,希望大虾们能给小弟一个较全面的解释,谢谢!!!

参考技术A 信息太少,不过看你题目是说生成表的问题。如果你保证bean 和 hbm 都没问题
就添加生成表
两种方法:
一种是hibernate.cfg.xml设置下:<property name="hbm2ddl.auto">create</property>
一种是用代码写法:
Java code
public class ExportDB

public static void main(String[] args)

//读取hibernate.cfg.xml文件
Configuration cfg = new Configuration().configure();

SchemaExport export = new SchemaExport(cfg);

export.create(true, true);



我没眼花的话 这个问题就是你表没有建立成功

很简单的话 就手动建表呗 自动建表很多问题的
要是学习用可以先建表 让他自动生成hbm文件 和自己的对比一下 就知道自己哪里写得不好 hibernate不能什么都认的
参考技术B 你将ID number 改成int 或者long 试试 参考技术C 我是用annotation 不实用xml配置表属性
不过我觉得xml应该可以设置表中各个字段的属性把》?
比如 主键:number 设为整数型 性别设为字符串型
还有你数据库里建立好空表了吗本回答被提问者采纳
参考技术D 去你的数据库查下,看看表t_user在不在class_info这个库中 第5个回答  2012-03-31 <property name="hibernate.hbm2ddl.auto">update</property>
这个hibernate.xml:里的配置写对了吗?

Hibernate 中出现表名(XXX) is not mapped 问题

今天晚上自己试着用Hibernate去搭建一个Web工程,然后去实现一个简单的登录。
通过Hibernate?做查询操作的时候总是报出这样的错:
users is?not?mapped.
 于是乎去检查了下映射,发现没问题呀,反复验证结果还是一样报错。
User.hbm.xml:
<class name="com.lian.bean.User" table="users">
hibernate.cfg.xml:
<mapping resource="com/lian/bean/User.hbm.xml" />
在网上找了很多,但还是不给力,大家都没提些有建设性的解决方案,基本上都是说配置有问题。
不过自己感觉是这个出问题:
String sql = "select u.password from users u where u.username=‘" +user.getUsername()+ "‘";
经过多番纠结和耐心查找资料,发现:
原来 HQL语句中表名应该是ORM映射的类名,所以应该改成:
String sql = "select u.password from User u where u.username=‘" +user.getUsername()+ "‘";
sql 语句查找的是生成的User 类,不是普通的表。 。。。。














以上是关于hibernate生成表出现问题!的主要内容,如果未能解决你的问题,请参考以下文章

Hibernater入门笔记

请说说你对Hibernat的理解?JDBC和Hibernate各有什么优势和劣势?

hibernate 异常 怎么解决

Hibernat 原生SQL运行结果集处理方法

Hibernate下的增删改查

Java 11:OSGi:生成 EntityManager,无法构建 Hibernate SessionFactory java.lang.ClassNotFoundException:org.hib