hibernate无法建表,求解

xgrsb2005 2011-12-17 02:52:32
hibernate.cfg.xml如下

<!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="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>

<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="connection.username">system</property>

<property name="connection.password"></property>

<property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>

<property name="hibernate.hbm2ddl.auto" >create</property>


<mapping resource="net/hncu/hibernate/Product.hbm.xml" />
</session-factory>


</hibernate-configuration>

Product.hbm.xml如下

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping>

<class name="net.hncu.hibernate.Product">

<id name="id">
<generator class="native"></generator>
</id>

<property name="name"></property>
</class>

</hibernate-mapping>

持久层如下


package net.hncu.hibernate;

public class Product
{
private String id;
private String name;
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
}



创建表的java类如下

package net.hncu.hibernate;

import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;

public class CreateDB
{
public static void main(String[] args)
{
Configuration cfg=new Configuration().configure();

SchemaExport sExport=new SchemaExport(cfg);

sExport.create(true,true);
}
}



我的数据库是oracle11g,按照理论,应该有sql语句在控制台输出,然后数据库中会建立一个Product的表,问题是居然没有表生成,之前我用的是hibernate3.jar,运行 CreateDB类后什么反应也没有。后来在网上查了资料,说oracle11g需要高版本的hibernate3.6final,于是我就干脆去hiberbate的官网下了个hibernate4.0final,是前天刚发布的。我用它替换掉原有的hibernate3.jar,运行CreateDB类就报错了,错误如下

Exception in thread "main" java.lang.NoClassDefFoundError: org/hibernate/annotations/common/reflection/ReflectionManager
at net.hncu.hibernate.CreateDB.main(CreateDB.java:10)
Caused by: java.lang.ClassNotFoundException: org.hibernate.annotations.common.reflection.ReflectionManager
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 1 more


神啊,救救我吧~~~~
...全文
349 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
forgetsam 2011-12-18
  • 打赏
  • 举报
回复
你用过hibernate吗?配置文件里连个table都没有让它建甚。

解析hql时候没有table可以默认是类名,建表不行

还有hibernate需要4-5个支持包,不懂就别乱换。
kouyiSC 2011-12-18
  • 打赏
  • 举报
回复
缺少注解的class类。。包版本有问题吧。。换一个版本。。看看jar中是否有ReflectionManager的class
吴红军 2011-12-18
  • 打赏
  • 举报
回复
java.lang.ClassNotFoundException: org.hibernate.annotations.common.reflection.ReflectionManager

不是说的很清楚了么?异常信息:类没有发现的异常。
缺少org.hibernate.annotations.common.reflection.ReflectionManager类,找找这个类是在什么包里面,放进去不就行了,这么简单的问题。
warriorLv 2011-12-18
  • 打赏
  • 举报
回复
你看看你的JDK版本,可能要1.6的(这个好像是个小BUG)
还有就是你看你的包是否全部导入了

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧