摘要: 1:AnnoationConfiguration类:可以指定hibernate.hbm.xml为另外的文件名hibernate.xml,如图:2:SessionFactory类:产生session的工厂,它里面维护的最重要的东西就是数据库连接池。你如果调用的是getSession(),无论调用多少次,拿到的永远是用一个sessioon。如图运行结果为true3:hibernate3.2之后就不建议使用这种方法(opensession)了。即:当你创建一个session的时候还可以用openSession()这个方式来创建,注意opensession永远是创建一个新的session,不会从当前上 阅读全文
posted @ 2013-04-09 21:34 歌颂者 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 即:annoation版本的联合主键,联合主键使用annoation有三种方式:最常用:第2种,但是经常还是会从数据库中往外load,所以还是需要第3种1:把主键类注解为:@Embeddable,取消掉实体类的两个主键属性,然后定义一个主键属性,生成getset方法,并把该属性注解为@Id,注意不是在主键类注解,是在实体类的主键属性处注解。2:(更简单)在实体类的主键属性的get方法前写:@EmbeddedId3:注释掉主键在实体类的主键属性,getset方法去掉,然后加上之前去掉的id和name,然后在getid前加@Id,在getName之前再加@Id,然后在实体类前写:@IdClass( 阅读全文
posted @ 2013-04-09 12:22 歌颂者 阅读(370) 评论(0) 推荐(0) 编辑
摘要: 1:一般能用一个字段做主键的就不要用两个字段,不过不可避免的会遇到要用两个字段做主键,此时要用hibernate,可以使用联合主键。如图:要用id和name做主键办法:单独设计一个类,起名StudentPK,在该类必须重写equals,hashcode,实现Serializable接口。此时在Student类中可以删除掉id和name的属性及get/set方法,但是必须加入新的属性,该属性的类型是StudentPK,如:private StudentPK pk;然后生成get/set方法,此时要想存一个Student,首先:new一个StudentPK,然后如图:此时还不够,还必须在配置文件中 阅读全文
posted @ 2013-04-09 09:44 歌颂者 阅读(960) 评论(0) 推荐(0) 编辑