- 浏览: 579714 次
- 性别:
- 来自: 苏州
-
文章分类
- 全部博客 (260)
- J2EE (28)
- database (7)
- Read Book (6)
- 系统日志 (13)
- Tapestry (2)
- 网站开发 (51)
- DDD (4)
- 设计模式 (3)
- Hibernate (33)
- J2SE (18)
- Servlet (9)
- search (6)
- Spring (12)
- Ruby On Rails (2)
- flex (10)
- quartz (3)
- xmpp (0)
- sfs (1)
- struts (17)
- 工作日志 (9)
- IDE (4)
- mina (5)
- 心得 (1)
- 源码分析 (2)
- Tomcat (1)
- 架构 (2)
- 项目部署 (5)
- 项目管理 (0)
- 并发编程 (2)
- linux (2)
最新评论
-
icolorfulday:
dfafaaffaaf
mappedBy跟JoinColumn/JoinTable -
chenas:
我把数据库里面的第一个字段的id 设置为0,好像这问题及没了
Batch update returned unexpected row count from update [0]; actual row count: 0; -
gyl199006:
java.lang.OutOfMemoryError: Per ...
java.lang.OutOfMemoryError: PermGen space -
yisshengyouni:
额,不知道这么多年过去了,楼主解决没有,
解决了分享哈
could not inspect jdbc autocommit mode -
QQ624654852:
...
hibernatetemplate自动事务
Hibernate Annotation早已经出现...
JPA早已被炒得爆了锅...但我才刚刚学习...
最近在重构网站的时候,类的移动免不了.虽然IDE帮了很多的忙,但在XML文件中的类路径不会变化..每次移了类都得再一个一个地找XML文件的类.
使用注解方式也得去修改XML文件,但相对于完全使用XML文件,减少了修改类之间有引用时的修改,只需要修改下总的配置文件就OK了.何乐而不会.
参考文章http://www.blogjava.net/bolo/archive/2008/09/19/229823.html
首先下载必要的包..hibernate hibernate-annotations
ejb3-persistence hibernate-commons-annotations
下载的时候得注意包的兼容性.在hibernate的官网上已经说明了下载注解包时需下载哪个core包..
不然就可能出现类似
的错误
还要注意hibernate新版本中的日志记录改为使用slf4j,得把下载包中的lib\required下的jar文件也放到工程中.
不然会出现类似
别的有使用的包也要重新导入新的版本.比如ehcache,得使用ehcache-1.2.3.jar包..
过去使用的低版本得换掉
不然会出现
准备工作完成之后,就可以写代码了..
一个POJO.
在导入Entity时,会有两个,一个是persistence包下还有一个是hibernate annotation下,得导入persistence下的.
http://www.hibernate.org/329.html
写完后.第三步就是在hibernate.config下配置.
不再是过去的
还有就是
如果是用的spring,并且想映射文件与注解方式一并使用
OK了.annonation的基本上就这些..当然还有关系间的映射之类,但慢慢去了解使用.
在hibernate升级后,得注意下对于select count语句的返回值问题..
过去hibernate3.2都是返回Integer
但现在3.3是返回Long...我在升级包后,重新junit的时候,就出现了classcastexception
也可以使用这种方法
以上就是在使用annotation后遇到的一些问题.
JPA早已被炒得爆了锅...但我才刚刚学习...
最近在重构网站的时候,类的移动免不了.虽然IDE帮了很多的忙,但在XML文件中的类路径不会变化..每次移了类都得再一个一个地找XML文件的类.
使用注解方式也得去修改XML文件,但相对于完全使用XML文件,减少了修改类之间有引用时的修改,只需要修改下总的配置文件就OK了.何乐而不会.
参考文章http://www.blogjava.net/bolo/archive/2008/09/19/229823.html
首先下载必要的包..hibernate hibernate-annotations
ejb3-persistence hibernate-commons-annotations
下载的时候得注意包的兼容性.在hibernate的官网上已经说明了下载注解包时需下载哪个core包..
不然就可能出现类似
tried to access field org.hibernate.cfg.Configuration. xmlHelper from class org.hibernate.cfg.AnnotationConfiguration
的错误
还要注意hibernate新版本中的日志记录改为使用slf4j,得把下载包中的lib\required下的jar文件也放到工程中.
不然会出现类似
Failed to load class "org.slf4j.impl.StaticLoggerBinder"错误
别的有使用的包也要重新导入新的版本.比如ehcache,得使用ehcache-1.2.3.jar包..
过去使用的低版本得换掉
不然会出现
java.lang.IllegalAccessError: tried to access method net.sf.ehcache.CacheManager.()V from class org.hibernate.cache.EhCacheProvider
准备工作完成之后,就可以写代码了..
一个POJO.
@Entity @Table(name = "teacher_info")//实体类和数据库表名不一致时,才用这个 public class UserMember implements java.io.Serializable { @Id @GeneratedValue(generator = "system-uuid") @GenericGenerator(name = "system-uuid", strategy = "uuid") private String id; @Column(updatable = false, nullable = false, length = 20) private String logonName;
在导入Entity时,会有两个,一个是persistence包下还有一个是hibernate annotation下,得导入persistence下的.
http://www.hibernate.org/329.html
引用
I use @org.hibernate.annotations.Entity and get an Unknown entity exception
Always import @javax.persistence.Entity
@org.hibernate.annotations.Entity completes @javax.persistence.Entity but is not a replacement
Always import @javax.persistence.Entity
@org.hibernate.annotations.Entity completes @javax.persistence.Entity but is not a replacement
写完后.第三步就是在hibernate.config下配置.
<mapping class="com.james.business.modle.domain.Event" />
不再是过去的
<mapping resource="com/james/business/modle/domain/Event.hbm.xml" />
还有就是
引用
用org.hibernate.cfg.AnnotationConfiguration替代以前的org.hibernate.cfg.Configuration,来初始化org.hibernate.SessionFactory。
初始化方法,sessionFactory = new AnnotationConfiguration().configure() .buildSessionFactory();
如果这时使用sessionFactory = new Configuration().configure() .buildSessionFactory(),会报异常:An AnnotationConfiguration instance is required to use 。
初始化方法,sessionFactory = new AnnotationConfiguration().configure() .buildSessionFactory();
如果这时使用sessionFactory = new Configuration().configure() .buildSessionFactory(),会报异常:An AnnotationConfiguration instance is required to use 。
如果是用的spring,并且想映射文件与注解方式一并使用
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.[color=red]LocalSessionFactoryBean[/color]"> <property name="dataSource" ref="dataSource"/> <property name="configLocations"> <list> <value>classpath*:/config/hibernate.cfg.xml</value> </list> </property> <property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration"/>
OK了.annonation的基本上就这些..当然还有关系间的映射之类,但慢慢去了解使用.
在hibernate升级后,得注意下对于select count语句的返回值问题..
过去hibernate3.2都是返回Integer
但现在3.3是返回Long...我在升级包后,重新junit的时候,就出现了classcastexception
引用
这个变化主要是为了兼容JPA,可以在hibernate.org的最新文档中找到说明。
Hibernate Team也提供了一个与原来兼容的解决方案:
Configuration classicCfg = new Configuration();
classicCfg.addSqlFunction( "count", new ClassicCountFunction());
classicCfg.addSqlFunction( "avg", new ClassicAvgFunction());
classicCfg.addSqlFunction( "sum", new ClassicSumFunction());
SessionFactory classicSf = classicCfg.buildSessionFactory();
Hibernate Team也提供了一个与原来兼容的解决方案:
Configuration classicCfg = new Configuration();
classicCfg.addSqlFunction( "count", new ClassicCountFunction());
classicCfg.addSqlFunction( "avg", new ClassicAvgFunction());
classicCfg.addSqlFunction( "sum", new ClassicSumFunction());
SessionFactory classicSf = classicCfg.buildSessionFactory();
也可以使用这种方法
@Override public int countAllSubject() { Session session = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction(); Number number=((Number) session.createQuery( "select count(*) from Post where idParent=0").iterate().next()); return number.intValue(); }
引用
因为无论是Long还是Integer,还是BigInteger,它们都是Number的子类,所以用Number去cast这个结果是肯定不会错的,然后,最好定义在Number里面这些方法可以统一的返回需要的类型;
byte byteValue()
以 byte 形式返回指定的数值。
abstract double doubleValue()
以 double 形式返回指定的数值。
abstract float floatValue()
以 float 形式返回指定的数值。
abstract int intValue()
以 int 形式返回指定的数值。
abstract long longValue()
以 long 形式返回指定的数值。
short shortValue()
以 short 形式返回指定的数值。
byte byteValue()
以 byte 形式返回指定的数值。
abstract double doubleValue()
以 double 形式返回指定的数值。
abstract float floatValue()
以 float 形式返回指定的数值。
abstract int intValue()
以 int 形式返回指定的数值。
abstract long longValue()
以 long 形式返回指定的数值。
short shortValue()
以 short 形式返回指定的数值。
以上就是在使用annotation后遇到的一些问题.
发表评论
-
mappedBy跟JoinColumn/JoinTable
2010-07-14 10:32 4311在对网站进行升级的时候,hibernate升级为最新的3.5. ... -
一对多保存
2010-03-18 23:25 1107一对多保存 User user = new Us ... -
级联保存的奇怪问题
2010-03-17 22:55 1160同步:http://www.java1995.cn/blog/ ... -
hibernate的一些问题
2010-02-08 00:28 967关联单向与双向的区别? inverse在双向关联中的作用? ... -
为什么要有单向关联
2010-02-07 21:36 1055http://www.java1995.cn/blog/ite ... -
HIBERNATE多对多配置实例
2010-02-07 17:55 12831. 环 境,student对 lesson,多对多的关 ... -
org.hibernate.AssertionFailure entry
2010-01-28 23:40 3508AssertionFailure: null id in xx ... -
org.hibernate.LazyInitializationException: illegal access to loading collection
2009-12-27 21:55 3766org.hibernate.LazyInitializatio ... -
Batch update returned unexpected row count from update [0]; actual row count: 0;
2009-12-27 13:30 12002Batch update returned unexpecte ... -
Collection has neither generic type or OneToMany.targetEntity() defined:
2009-12-27 01:13 3148如出现类似以下异常: org.hiberna ... -
hibernatetemplate自动事务
2009-12-23 23:08 4249hibernatetemplate自动事务 ... -
packagesToScan annotatedPackages
2009-12-22 23:51 4631packagesToScan 有 了这个方法,我们不再需要自 ... -
一对多 Cannot add or update a child row
2009-12-09 23:10 3594其实这个问题是在更新数据的时候出现的。 在使用getO ... -
jpa 一对多单向关联 查询问题
2009-12-08 23:47 3405上次碰到一个问题:jpa 一对多单向关联 插入问题 ... -
jpa 一对多单向关联 插入问题
2009-10-15 22:49 2226hibernate推荐使用双向关联 但单向关联也不是不能使用 ... -
单向与双向的区别
2009-09-07 19:46 1313当使用单向关联时,由父类管理关联关系,子类无法管理,而这时,父 ... -
C3P0的错误吗?
2009-08-01 01:04 2412Connections could not be acquir ... -
hibernate WrongClassException异常
2009-07-19 20:12 1323在继承关系映射数据库的时候,出现了 net.sf.hibern ... -
hibernate中的数据类型
2009-07-19 19:41 1585使用Hibernate到现在还没有发现一个问题。 今天在写映 ... -
类继承映射表
2009-07-19 04:00 1137hiernate用了很久,,但都是很简单的应用。。 现在水平应 ...
相关推荐
这里面包涵了需要用Hibernate Annotation时,所需要的所有jar包! 现在我们公司在做web项目的时候,已经不用*.hbm.xml这种映射文件了,都是用Annotation(注解)方式来完成实体与表之间的映射关系,这样看起来比用...
hibernate annotation中文文档
《Hibernate注解与Hibernate3深度解析》 在Java开发领域,Hibernate作为一种强大的对象关系映射(ORM)框架,极大地简化了数据库操作。本篇将深入探讨Hibernate 3版本中的注解使用,帮助开发者理解如何利用注解进行...
《Hibernate Annotation 中文文档》是Java开发者们的重要参考资料,它详细介绍了如何在Hibernate框架中使用注解进行对象关系映射(ORM)。Hibernate是一款强大的开源Java持久化框架,它简化了数据库与Java对象之间的...
在Hibernate中,注解(Annotation)是一种声明式的方法,用于配置实体类、属性以及它们与数据库表之间的映射关系。本文将深入探讨“最全的Hibernate Annotation API文档”中的关键知识点。 一、实体类(Entity) 在...
**Hibernate Annotation 中文文档** 在Java的持久化框架中,Hibernate是一个非常重要的工具,它极大地简化了数据库操作。随着技术的发展,Hibernate Annotation逐渐成为主流,因为它提供了更直观、更简洁的方式来...
Hibernate Annotation库是Java开发中用于简化对象关系映射(ORM)的一个重要组件,它使得开发者能够在Java类上直接使用注解来定义数据库映射,从而避免了传统的XML配置文件。这三个特定的jar包是Hibernate ORM框架中...
《Hibernate Annotation 学习笔记》 在Java的持久化框架中,Hibernate以其强大的功能和易用性成为开发者首选之一。而Hibernate Annotation则是Hibernate提供的一种基于注解的实体映射方式,它极大地简化了传统XML...
**Hibernate Annotation 入门** Hibernate 是一款非常流行的Java对象关系映射(ORM)框架,它允许开发者使用面向对象的方式操作数据库。而Hibernate Annotation是Hibernate的一个重要特性,它通过在Java类和字段上...
Hibernate Annotation
hibernate 注解 annotation 教程
Hibernate annotation 3.4 api CHM
总结来说,这个 "Spring Hibernate Annotation demo" 展示了如何在 Spring 框架中使用注解配置来管理依赖,以及如何利用 Hibernate 的注解进行数据持久化。同时,它还涉及到了 Flex 前端与后端的交互。通过学习这个 ...
Hibernate Annotation API是Hibernate ORM的一种扩展,允许开发者使用Java注解(Annotations)来定义对象-关系映射。这种API避免了传统的Hibernate XML配置文件,使得ORM配置更加内聚且易于维护。 2. **核心注解**...
【标题】:深入理解Hibernate Annotation及其使用 【描述】:本文将全面介绍Hibernate Annotation的使用,包括事务管理和声明式事务处理,以及如何通过注解简化数据库持久化操作。 【标签】:Hibernate, ...
### HibernateAnnotation 技术概述 在Java开发领域中,Hibernate框架是进行对象关系映射(Object-Relational Mapping,简称ORM)的一种非常流行的工具。它能够帮助开发者将面向对象的模型与关系型数据库进行桥接,...
Hibernate Annotation中文教程 Hibernate 是 Java 数据库持久性的事实标准之一,它非常强大、灵活,而且具备了优异的性能。传统上,Hibernate 的配置依赖于外部 XML 文件,而最近发布的几个 Hibernate 版本中,...
通过阅读《Hibernate_annotation_1to1_foreignKey》文档或博客,你可以更详细地了解如何配置和使用这种关联,包括示例代码、注意事项以及可能遇到的问题和解决方案。理解并熟练运用这些知识,能帮助你在使用...