论坛首页 入门技术论坛

Hibernate知识辅导(2--2)

浏览 1082 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-12-03  

4,根据底层数据库指定生成方法

 

     <id name="id" column="id">

         <generator class="native"/>

     </id>

 

注意,在使用native的底层是针对Oracle数据库时,id的生成方式还是使用sequence,只不过需要一个特定名字的sequence"hibernate_sequence"

 

5,高低位算法

 

<id name="id" column="id">

         <generator class="hilo">

              <param name="table">high_value</param>

              <!--设置高位值取值的表-->

              <param name="column">next_value</param>

              <!--设置高位值取值的字段-->

              <param name="max_lo">50</param>

              <!--指定低位最大值,当取道最大值是会再取一个高位值再运算-->

         </generator>

</id>

 

类关联关系映射

 

一对一关系实现

 

建表策略

1,共享主键,也就是一方引用另一方的主键,作为自身的主键,也是外键。

2,外键引用,也就是一方引用另一方的主键,作为外键,并且对引用的外键加唯一约束。

 

UserAddress类为例,用户和用户的地址是一对一关系

 

User

package alan.hbn.rel.o2o;

import java.io.Serializable;

public class User implements Serializable{

    private int userId;

    private String userName;

    private Address address;

    public int getUserId(){

        return userId;

    }

 

    public void setUserId(int userId){

        this.userId = userId;

    }

 

    public String getUserName(){

        return userName;

    }

 

    public void setUserName(String userName){

        this.userName = userName;

    }

 

    public Address getAddress(){

        return address;

    }

 

    public void setAddress(Address address){

        this.address = address;

        if (address != null){

            address.setUser(this);

        }

    }

}

 

Address

package alan.hbn.rel.o2o;

 

import java.io.Serializable;

 

public class Address implements Serializable{

    private int addressId;

    private String street;

    private String zipcode;

    private User user;

    public int getAddressId(){

        return addressId;

    }

 

    public void setAddressId(int addressId){

        this.addressId = addressId;

    }

 

    public String getStreet(){

        return street;

    }

 

    public void setStreet(String street){

        this.street = street;

    }

 

    public String getZipcode(){

        return zipcode;

    }

 

    public void setZipcode(String zipcode){

        this.zipcode = zipcode;

    }

 

    public User getUser(){

        return user;

    }

 

    public void setUser(User user){

        this.user = user;

    }

   

}

论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics