`

hibernate配置实战001

 
阅读更多
school和userMember是一对多关系,一些基本配置就不写了:
SchoolInfo.java
  1. importjavax.persistence.CascadeType;
  2. importjavax.persistence.Column;
  3. importjavax.persistence.Entity;
  4. importjavax.persistence.FetchType;
  5. importjavax.persistence.GeneratedValue;
  6. importjavax.persistence.Id;
  7. importjavax.persistence.OneToMany;
  8. importjavax.persistence.Table;
  9. importjavax.persistence.Temporal;
  10. importjavax.persistence.TemporalType;
  11. importorg.hibernate.annotations.Formula;
  12. importorg.hibernate.annotations.GenericGenerator;
  13. @Entity
  14. @Table(name="school_info")
  15. publicclassSchoolInfoimplementsjava.io.Serializable{
  16. @Id
  17. @GeneratedValue(generator="system-uuid")
  18. @GenericGenerator(name="system-uuid",strategy="uuid")
  19. privateStringid;//hibernate的uuid机制,生成32为字符串
  20. @Column(name="actcodeId",updatable=false,nullable=true,length=36)
  21. privateStringactcodeId;
  22. @Formula("selectCOUNT(*)fromschool_info")
  23. privateintcount;
  24. @Temporal(TemporalType.TIMESTAMP)//不用set,hibernate会自动把当前时间写入
  25. @Column(updatable=false,length=20)
  26. privateDatecreateTime;
  27. @Temporal(TemporalType.TIMESTAMP)
  28. privateDateupdateTime;//刚开始我默认insertable=false,但会读取出错提示如下:
  29. //Value'0000-00-00'cannotberepresentedasjava.sql.Timestamp
  30. // mappedBy="school"就相当于inverse=true,(mappedBy指定的是不需要维护关系的一端)
  31. //应该注意的是mappedBy值对应@ManyToOne标注的属性,我刚开始写成"schoolId",让我郁闷了好一会
  32. @OneToMany(mappedBy="school",cascade=CascadeType.ALL,fetch=FetchType.EAGER,targetEntity=UserMember.class)
  33. //用范性的话,就不用targetEntity了
  34. privateList<usermember>users=</usermember>newArrayList<usermember>();</usermember>
  35. }
@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. publicclassUserMemberimplementsjava.io.Serializable{
  4. @Id
  5. @GeneratedValue(generator="system-uuid")
  6. @GenericGenerator(name="system-uuid",strategy="uuid")
  7. privateStringid;
  8. @Column(updatable=false,nullable=false,length=20)
  9. privateStringlogonName;
  10. @Temporal(TemporalType.TIMESTAMP)
  11. @Column(updatable=false,length=20)
  12. privateDatecreateTime;
  13. @Temporal(TemporalType.TIMESTAMP)
  14. privateDateupdateTime;
  15. @ManyToOne(cascade={CascadeType.MERGE})
  16. @JoinColumn(name="schoolId")
  17. privateSchoolInfoschool;
  18. //注意该类就不用声明schoolId属性了,如果不用@JoinColumn指明关联的字段,hibernate默认会是school_id.
  19. }

分享到:
评论

相关推荐

    Hibernate实战

    《Hibernate实战》这本书深入浅出地探讨了Java领域中广泛使用的对象关系映射框架——Hibernate。Hibernate是一个开源的ORM框架,它为Java开发者提供了一种高效、便捷的方式来管理数据库操作,消除了Java对象与SQL...

    hibernate实战 英文版

    1. **架构与配置**:书中详细讲解了Hibernate框架的内部架构,以及如何配置Hibernate以适应不同的应用场景。 2. **对象关系映射(ORM)**:ORM是Hibernate的核心功能之一,书中对此进行了详尽的阐述,包括如何将Java...

    Hibernate4实战资料

    《Hibernate4实战详解:注解零配置篇》 在现代Java开发中,Hibernate作为一个强大的对象关系映射(ORM)框架,极大地简化了数据库操作。尤其是Hibernate4版本,引入了注解配置,使得开发者无需XML配置文件,即可...

    Hibernate4实战.pdf

    综上所述,Hibernate4实战文档包含的知识点涵盖了Hibernate的基本概念、核心组件、映射技术、配置方法、事务管理,以及如何与Java应用集成。同时,该文档还涉及了Java开发者的薪资水平、学习资源获取方式,提供了...

    Hibernate开发实战源代码

    2. **Hibernate配置**:学习如何配置`hibernate.cfg.xml`文件,设置数据库连接参数,以及加载实体类信息。 3. **实体类(Entities)**:理解如何创建Java类来代表数据库表,并使用注解如`@Entity`,`@Table`,`@Id`...

    Hibernate开发实战讲解(源代码)

    在这个压缩包中,我们期待找到一系列关于Hibernate配置、实体映射、会话管理、查询操作、缓存策略以及其他高级特性的示例代码。 1. **Hibernate简介**:Hibernate是Java平台上的一个开源对象关系映射(ORM)框架,...

    Hibernate4实战 之第七部分

    ### Hibernate4实战之第七部分:最佳实践 #### 设计细颗粒度的持久类并使用`&lt;component&gt;`实现映射 在Hibernate中,细颗粒度的持久类是指将实体中的复杂属性拆分成单独的对象进行管理。例如,对于一个用户实体中的...

    Manning.Java.Persistence.with.Hibernate[Hibernate实战第二版].pdf

    该书详细介绍了Hibernate的基础概念、配置、实体管理、查询语言(HQL和Criteria API)、关联映射、缓存策略、性能优化以及高级特性。通过实际案例,读者可以了解到如何在项目中有效地使用Hibernate进行数据持久化。书...

    Hibernate实战(第2版).zip

    《Hibernate实战(第2版)》是一本深入探讨Java领域持久化框架Hibernate的专业书籍,针对Java开发者提供了详尽的Hibernate应用指南。这本书旨在帮助读者掌握如何有效地使用Hibernate进行数据库操作,提升开发效率,...

    MLDN_Hibernate开发实战讲解视频教程

    【标题】"MLDN_Hibernate开发实战讲解视频教程"涵盖了关于Hibernate框架的深入学习和实践应用,这是一款广泛用于Java企业级应用中的对象关系映射(ORM)工具。Hibernate简化了数据库操作,允许开发者用面向对象的...

    hibernate实战第二版.pdf

    《Hibernate实战》第二版是一本深入探讨Java领域中ORM(对象关系映射)技术的经典教程。Hibernate作为Java EE开发中的重要框架,它有效地解决了数据库与Java对象之间的转换问题,简化了数据操作。这本书针对初学者和...

    hibernate实战 第2版.pdf

    Hibernate的配置文件通常包含数据库连接信息、ORM映射信息以及Hibernate配置属性等。常见的配置文件有hibernate.cfg.xml,此外,还可以使用注解来配置实体类和映射。 在Hibernate中,一级缓存是session级别的缓存,...

    Hibernate4实战(pdf_source).

    以上内容仅仅是Hibernate4实战书籍中的一部分精华,书中还会详细讲解如何配置Hibernate,如何进行基本的CRUD(Create、Read、Update、Delete)操作,以及解决实际开发中遇到的问题和挑战。通过对这本书的学习,...

    Hibernate4实战

    在第二部分中,《Hibernate4实战》详细讲解了Hibernate的配置过程。这包括`hibernate.cfg.xml`配置文件的解析,如何设置数据库连接信息(如驱动、URL、用户名和密码),以及如何定义日志级别和其他高级配置选项。...

    Hibernate实战(第2版) 高清扫描版

    《Hibernate实战(第2版)》是一本深入探讨Java持久化框架Hibernate的专业书籍,高清扫描版使得读者可以清晰地获取书中的每一个细节。Hibernate作为Java领域最流行的ORM(对象关系映射)框架之一,它极大地简化了...

    Hibernate4实战之Hibernate4注解零配置

    在Java的ORM框架Hibernate4中,注解零配置是一种简化持久化对象(POJOs)映射的方法,它允许开发者避免使用XML配置文件,而是直接在Java类和属性上使用注解来描述数据库表和字段的映射关系。以下是关于Hibernate4...

    Hibernate实战(第2版).pdf

    《Hibernate实战(第2版)》是一本深入探讨Java持久化框架Hibernate的专业书籍,它针对的是Java开发人员,特别是那些希望提升数据库管理效率和优化应用程序性能的开发者。Hibernate作为一个开源的对象关系映射(ORM...

Global site tag (gtag.js) - Google Analytics