设为首页 加入收藏

TOP

Hibernate+JUnit测试实体类生成数据库表
2015-07-20 12:52:28 来源: 作者: 【 】 浏览:35
Tags:Hibernate JUnit 测试 实体 生成 数据库

今天在使用hibernate注解方式标明的实体类时产生数据库表示遇到了一些问题,经过搜集一些资料,最后总结了一下,如下所示:


先把我的整体的几个文件的代码贴出来吧


这是hibernate.cfg.xml文件



? ? ? ? ? "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
? ? ? ? ? "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">


?
? com.mysql.jdbc.Driver
? jdbc:mysql://localhost:3306/phn_dsjava
? root
? 123456
? org.hibernate.dialect.MySQLDialect
? true
? true
? update


?


?



这是实体类Announces.java


package com.phn.bean;


import java.util.Date;


import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;


/**
?* @author phn
?*
?*/
@Entity
@Table(name = "t_announce")
public class Announces {


?private Integer id;
?private String announcement;
?private String title;
?private Date thetime;


?@Id
?@GeneratedValue
?@Column(nullable = false)
?public Integer getId() {
? return this.id;
?}


?public void setId(Integer id) {
? this.id = id;
?}


?@Column(length = 20000)
?public String getAnnouncement() {
? return this.announcement;
?}


?public void setAnnouncement(String announcement) {
? this.announcement = announcement;
?}


?@Column(length = 100)
?public String getTitle() {
? return title;
?}


?public void setTitle(String title) {
? this.title = title;
?}


?public Date getThetime() {
? return thetime;
?}


?public void setThetime(Date thetime) {
? this.thetime = thetime;
?}


}


这是测试类HibernateAnnotationTest.java


package com.phn.junitTest;


import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.junit.Test;


import junit.framework.TestCase;


public class HibernateAnnotationTest extends TestCase {
?@Test
?public void testSQL() {
? AnnotationConfiguration configuration = new AnnotationConfiguration();
? configuration.configure();
? SessionFactory sessionFactory = configuration.buildSessionFactory();
?}
}


---------------------------下面是大致问题解释---------------------------


Hibernate的配置文件hibernate.cfg.xml位于src目录下。在单元测试时,执行下面代码时,会产生异常。


Configuration cfg = new Configuration();
SessionFactory sf = cfg.configure().buildSessionFactory();


异常:
org.hibernate.MappingException: An AnnotationConfiguration instance is required to use


Hibernate配置文件中,若带有,则说明映射类时,采用了Annotation方式。在初始化Configuation时,应使用AnnoationConfiguration,代码如下:


AnnotationConfiguration configuration = new AnnotationConfiguration();
configuration.configure();
SessionFactory sessionFactory = configuration.buildSessionFactory();


注意:这里使用的hibernate版本是3.3
版本低一点可能会出现下面图片这个错误,这是因为低版本的hibernate的jar包org.hibernate.engine.query.sql.NativeSQLQueryReturn类缺少,因此将其版本更新一下就行了


Hibernate+JUnit测试实体类生成数据库表


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java数据结构-线性表之单链表应用 下一篇Socket接口原理及用C#语言实现

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: