您当前的位置: 首页 >  hibernate

宝哥大数据

暂无认证

  • 4浏览

    0关注

    1029博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Hibernate06_ID生成策略

宝哥大数据 发布时间:2017-08-26 14:54:13 ,浏览量:4

第一种native , id自增, 相当于primary key auto_increment;

Book实体类

package com.chb.model;

public class Book {
    private int id;
    private String name;
    private double price;

    public Book() {}

    public Book(int id, String name, double price) {
        super();
        this.id = id;
        this.name = name;
        this.price = price;
    }


    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public double getPrice() {
        return price;
    }
    public void setPrice(double price) {
        this.price = price;
    }



}

Book.hbm.xml





    
    
        
            
            
        
        
        
    
测试成功:

这里写图片描述

查看数据库, 可以发现id自动为1

这里写图片描述

二、生成策略为assign 修改Book.hbm.xml




    
    
        
            
            
        
        
        
    
使用DROP TABLE book_table 将数据库中的book_table删除 ID生成策略改为assigned, 第一次执行,ID自动为1 再次执行测试, 报如下错误。因为id需要开发人员自己指定。
ERROR: Duplicate entry '0' for key 'PRIMARY'
三、生成策略为uuid

Book.hbm.xml





    
    
        
            
            
        
        
        
    
将Book实体类的id改为String
package com.chb.model;

public class Book {
    private String id;
    private String name;
    private double price;

    public Book() {}

    public Book(String id, String name, double price) {
        super();
        this.id = id;
        this.name = name;
        this.price = price;
    }


    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public double getPrice() {
        return price;
    }
    public void setPrice(double price) {
        this.price = price;
    }



}
删除数据库中的book_table 测试

这里写图片描述

关注
打赏
1587549273
查看更多评论
立即登录/注册

微信扫码登录

0.0711s