`
weishuwei
  • 浏览: 322062 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

hibernate annotation笔记

阅读更多
school和userMember是一对多关系,一些基本配置就不写了:
SchoolInfo.java
 
  1. import javax.persistence.CascadeType;  
  2. import javax.persistence.Column;  
  3. import javax.persistence.Entity;  
  4. import javax.persistence.FetchType;  
  5. import javax.persistence.GeneratedValue;  
  6. import javax.persistence.Id;  
  7. import javax.persistence.OneToMany;  
  8. import javax.persistence.Table;  
  9. import javax.persistence.Temporal;  
  10. import javax.persistence.TemporalType;  
  11.   
  12. import org.hibernate.annotations.Formula;  
  13. import org.hibernate.annotations.GenericGenerator;  
  14.   
  15. @Entity  
  16. @Table(name = "school_info")  
  17. public class SchoolInfo implements java.io.Serializable {  
  18.   
  19.     @Id  
  20.     @GeneratedValue(generator = "system-uuid")  
  21.     @GenericGenerator(name = "system-uuid", strategy = "uuid")  
  22.     private String id;//hibernate的uuid机制,生成32为字符串  
  23.   
  24.     @Column(name = "actcodeId", updatable = false, nullable = true, length = 36)  
  25.     private String actcodeId;  
  26.   
  27.     @Formula("select COUNT(*) from school_info")  
  28.     private int count;  
  29.   
  30.     @Temporal(TemporalType.TIMESTAMP)//不用set,hibernate会自动把当前时间写入  
  31.     @Column(updatable = false, length = 20)  
  32.     private Date createTime;  
  33.   
  34.     @Temporal(TemporalType.TIMESTAMP)  
  35.     private Date updateTime;// 刚开始我默认insertable=false,但会读取出错提示如下:  
  36.     // Value '0000-00-00' can not be represented as java.sql.Timestamp  
  37.   
  38.     // mappedBy="school"就相当于inverse=true,(mappedBy指定的是不需要维护关系的一端)  
  39.     // 应该注意的是mappedBy值对应@ManyToOne标注的属性,我刚开始写成"schoolId",让我郁闷了好一会
  40.     @OneToMany(mappedBy = "school", cascade = CascadeType.ALL, fetch = FetchType.EAGER, targetEntity = UserMember.class)  
  41.     // 用范性的话,就不用targetEntity了  
  42.     private List<usermember> users = </usermember>new ArrayList<usermember>();  </usermember>
  43.       
  44. }  
@GeneratedValue(strategy=GenerationType.AUTO)我们常用的自增长机制,我这里采用的是hibernate的uuid生成机制.
需要注意的是import javax.xx.Entity ,而不是org.hibernate.xx.Entity。

郁闷的是我上面用到@Formula,生成的sql竟然是'select COUNT(*) from school_info as formula0_ from school_info schoolinfo0_,当然不能执行了,寻求正解中~!!!!!!!!!

UserMember.java(前面引入的包已经贴过了,下面就不贴了)
 
  1. @Entity  
  2. @Table(name = "teacher_info")//实体类和数据库表名不一致时,才用这个  
  3. public class UserMember implements java.io.Serializable {  
  4.   
  5.     @Id  
  6.     @GeneratedValue(generator = "system-uuid")  
  7.     @GenericGenerator(name = "system-uuid", strategy = "uuid")  
  8.     private String id;  
  9.   
  10.     @Column(updatable = false, nullable = false, length = 20)  
  11.     private String logonName;  
  12.       
  13.     @Temporal(TemporalType.TIMESTAMP)  
  14.     @Column(updatable = false, length = 20)  
  15.     private Date createTime;  
  16.   
  17.     @Temporal(TemporalType.TIMESTAMP)  
  18.     private Date updateTime;  
  19.   
  20.     @ManyToOne(cascade = { CascadeType.MERGE })  
  21.     @JoinColumn(name = "schoolId")  
  22.     private SchoolInfo school;  
  23.     //注意该类就不用声明schoolId属性了,如果不用@JoinColumn指明关联的字段,hibernate默认会是school_id.  
  24.   
  25. }  

分享到:
评论
8 楼 fourfire 2008-06-19  
字段的comment怎么搞?
7 楼 antonyup_2006 2008-06-16  
zhouyaguo 写道
请教一下,我的程序里也写了
@Temporal(TemporalType.DATE)
private Date createTime;
也没set值。但是该字段没有生成系统时间。可能是什么原因?


这个可能跟你的数据库有关,你换成@temporal(temporal.timestamp) 试试看

我项目中曾因为这个设置不对 结果取出的时间是格凌时间的默认起始时间!
6 楼 zhouyaguo 2008-06-16  
引用
@Temporal(TemporalType.TIMESTAMP)//不用set,hibernate会自动把当前时间写入

我测试了一下,不会自动写入当前时间的。

标注Temporal的作用在于:
通过 @Temporal 定义映射到数据库的时间精度:
@Temporal(TemporalType=DATE)       日期
@Temporal(TemporalType=TIME)       时间
@Temporal(TemporalType=TIMESTAMP)  两者兼具
5 楼 zhouyaguo 2008-06-16  
请教一下,我的程序里也写了
@Temporal(TemporalType.DATE)
private Date createTime;
也没set值。但是该字段没有生成系统时间。可能是什么原因?
4 楼 hbcui1984 2007-07-16  
不错,支持一下!
不过我在一般工作中,不会写那么多annotation,只要保持数据库字段名和pojo的属性名称保持相同即可,这样的话,hibernate会自动映射,只需要处理一下id就可以了。
3 楼 shangmw 2007-07-15  
请问@Formula("select COUNT(*) from school_info")   这句放在
    private int count;  上是干嘛用的,能解释一下吗
谢谢!
2 楼 scienceren 2007-07-05  
不错的笔记,学习中。
1 楼 codeutil 2007-06-30  
@Formula("select COUNT(*) from school_info") 

要改成

@Formula(" (select COUNT(*) from school_info) ") 

必须用括号括起来.

相关推荐

    Hibernate Annotation 笔记 总结 注解

    Hibernate Annotation 笔记 总结 注解 注解事务,声明事务,详解。

    Hibernate Annotation笔记

    简介: 在过去几年里,Hibernate不断发展,...Hibernate annotation使用了ejb JPA的注解,所以,下面安装配置hibernate annotation环境时,需要导入ejb的包。许多网上的资料都是jpa hibernate annotation方面的资料。

    Hibernate Annotation 学习笔记

    一步步hibernate annotation练习笔记, 实例操作,从经验中学习

    Hibernate -annotation 学习笔记

    Hibernate -annotation 学习笔记 详细总结~! Hibernate -annotation 学习笔记

    hibernate-annotation学习,笔记,

    hibernate-annotation学习,笔记,现在正学,感觉还不错,分享一下。

    Hibernate_annotation_学习笔记

    Hibernate_annotation_学习笔记 第1课 课程内容 6 第2课 Hibernate UML图 6 第3课 风格 7 第4课 资源 7 第5课 环境准备 7 第6课 第一个示例Hibernate HelloWorld 7 第7课 建立Annotation版本的HellWorld 9 第8课 ...

    马士兵hibernate学习笔记(原版)

    3 重Annotation,轻xml配置文件 ... 性能优化 1 注意session.clear()的运用,尤其在不断分页循环的时候 2 1+N问题 (典型的面试题) (详见 hibernate_2800_Hibernate_1+N项目) 3 list和iterate不同之处(//主要...

    Spring和Hibernate学习笔记

    Hibernate: 第一课:第一个hibernate项目 第二课:测试实体对象的生命周期 第三课:hibernate基本映射 ...第四课:spring对AOP的只是(采用Annotation的方式) 第五课:spring对AOP的只是(采用配置文件的方式)

    Hibernate笔记 马士兵

    第2课 Hibernate UML图 6 第3课 风格 7 第4课 资源 7 第5课 环境准备 7 第6课 第一个示例Hibernate HelloWorld 7 第7课 建立Annotation版本的HellWorld 9 第8课 什么是O/R Mapping 11 一、 定义: 11 二、 Hibernate...

    hibernate笔记

    3 hibernate annotation references 5 环境准备 5 1 下载hibernate-distribution-3.3.2.GA-dist 5 2 下载hibernate-annotations-3[1].4.0.GA 5 3 注意阅读hibernate compatibility matrix(hibernate 网站download) 5...

    Hibernate—详细学习笔记

    比较详实的Hibernate课堂笔记,该笔记中有大量的例子帮助了解消化,绝对是非常值得的下载资料

    hibernate 3.3学习笔记

    第10课 模拟Hibernate原理(OR模拟) 第11课 Hibernate基础配置 第16课 关系映射(重点 Annotation注解)

    Spring的学习笔记

    一、 开始使用annotation配置Spring 16 二、 @Autowired、@Qualifier 16 (一) @Autowired 16 (二) @Qualifier 17 三、 @Resource(重要、推荐) 17 (一) JSR-250 17 (二) @Resource 17 四、 @Componet 18 五、 @Scope...

    spring2.5 学习笔记

    一、 开始使用annotation配置Spring 16 二、 @Autowired、@Qualifier 16 (一) @Autowired 16 (二) @Qualifier 17 三、 @Resource(重要、推荐) 17 (一) JSR-250 17 (二) @Resource 17 四、 @Componet 18 五、 @Scope...

    Java/JavaEE 学习笔记

    Hibernate学习笔记..........180 第一章 Hibernate入门.....................180 第二章 对象/关系映射基础.............183 第三章 关联关系映射......................185 第四章 操纵持久化对象....................

    J2EE学习笔记(J2ee初学者必备手册)

    Hibernate学习笔记..........180 JavaEE@xuxiang 3 Java/JavaEE学习笔记Jonny xuxiang5612@sina.com 第一章 Hibernate入门.....................180 第二章 对象/关系映射基础.............183 第三章 关联关系映射....

    免费下载:自己整理的java学习资料

    javaAnnotation.doc java_xml_api.chm JAVA分页大全.txt JAVA设计模式.chm JAVA配置文件编写说明文档.pdf jboss.pdf log4j使用教程.txt struts_action.txt struts标签.chm swing02.doc Tomcat.chm webAndXml.pdf ...

Global site tag (gtag.js) - Google Analytics