结合使用Hibernate和XDoclet

结合使用Hibernate和XDoclet

    转载自: http://blog.163.com/scpazd_1982/blog/static/1125932420076933421634/

    Hibernate本身没有提供生成映射文件的机制。我们可以使用一种新的工具--XDoclet,作为一种通用的代码生成工具,XDoclet可用于生成任何类型的文件,包括Hibernate映射文件。XDoclet使用标准JavaDoc 工具的一个变种,来读取Java源文件并将其写入到新文件中去。在java源文件中插入特殊的JavaDoc标签之后,Xdoclet将能够读取这些标签,并根据这些信息生成映射文件。 标签只有放置到合适的地方才有效果。

  • @Hibernate .class 标签
        这个标签只能放在类级JavaDoc注释中。要放在类声明之前,紧靠着类的声明。
  • @Hibernate .id 标签
         generator-class  包含hibernate插入新实例时将使用的主码生成器   它是强制的,必须指定一个。大多数使用native
         type             指定该属性的Hibernate类型                     属性的返回值。主码通常是string或Long
         column           包含列名                                      属性名
         unsaved-value    包含用于区分临时对象和持久化对象的值          NUll
         length           指定数据列的长度                              属性类型的默认长度。对于Long,他是给定的,对于String,可能需要指定。
  • @Hibernate .property 标签
         它必须放在getter方法中而不是属性中。
         column           指定要将该属性要持久化到哪列                  属性的名称
         length           指定列的长度                                  属性的默认长度
         not-null         指定是否执行非空约束                          false
         unique           指定是否执行唯一性约束                        false
         type             指定Hibernate类型                             。
  • @Hibernate .column 标签
         name             包含该属性将映射到的列                        这是强制的。
         length           指定列的长度                                  属性的默认长度或sql-type的隐含长度
         not-null         指定是否执行非空约束                          false
         unique           指定是否执行唯一性约束                        false
         index            包含该列的表索引名                            不创建命名索引
         unique-key       用该名称创建唯一的命名约束                    不创建命名索引
  • @Hibernate .many-to-one 标签
         一对一关系与@Hibernate.property标签基本相同,只是它存储到另一个表的外码,而不是单个列的属性值。
         column           包含数据库中的列名                            属性的名称
         class            包含关联的持久化类                            属性的类
         cascade          指定如何处理从父对象到子对象的级联操作        none
         unique           指定是否执行唯一性约束                        false
         not-null         指定是否执行空约束                            false
  • @Hibernate. component 标签
         组件不像Event和Location那样完整的实体,而只是简单的值对象,其值存储在父对象所在的表中。XDoclet可以标记组件本身,也可标记实体对象的
         组件属性。不需要Address。hbm。xml文件。
         class             组件的全限定类名                             getter方法返回的类型
         prefix            包含列的前缀,让同一个实体可以有多个同类型的组件     
      创建集合:一对多,Speanker集合
         必须使用多个互相合作的标签。
  • @Hibernate. set 标签。
        cascade            指定应如何处理父对象到子对象的级联操作           none
        table              只用于多对多关联,包含连接的关联表名             多对多,它使用属性名
        lazy               指定集合是否延迟初始化                           false
        sort               指定集合在内存中是否排序                         集合不排序
        order-by           指定获得集合的查询是否添加SQL ORDERED BY子句
        inverse            指定集合是否为翻转的                             false   
  • @Hibernate. collection-key 标签
        所有集合都需要使用key元素,否则,将没有外码用于从子对象跟踪到父对象。
        column             集中对象的外码列名                                无默认值;它是强制的。
        集合中的对象总是有key元素、@Hibernate.collection-key标签和key列。
        XDoclet是一个代码生成工具,让你能够从定义文件--源代码文件--生成映射文件。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值