Hibernate知识辅导(2--2)

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;

    }

   

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值