20180803学习笔记

一、JPA通用策略生成器 
通过annotation来映射hibernate实体的,基于annotation的hibernate主键标识为@Id, 
其生成规则由@GeneratedValue设定的.这里的@id和@GeneratedValue都是JPA的标准用法, 
JPA提供四种标准用法,由@GeneratedValue的源代码可以明显看出. 
 

@Target({METHOD,FIELD})    
    @Retention(RUNTIME)    
    public @interface GeneratedValue{    
        GenerationType strategy() default AUTO;    
        String generator() default "";    
    }   



其中GenerationType: 
 

public enum GenerationType{    
    TABLE,    
    SEQUENCE,    
    IDENTITY,    
    AUTO   
}  

JPA提供的四种标准用法为TABLE,SEQUENCE,IDENTITY,AUTO. 

  1. TABLE:使用一个特定的数据库表格来保存主键。 
    SEQUENCE:根据底层数据库的序列来生成主键,条件是数据库支持序列。 
    IDENTITY:主键由数据库自动生成(主要是自动增长型) 
    AUTO:主键由程序控制。 

如果要声明一个字段为主键以及主键自增,可以在类的成员前面加

@Id  

@GeneratedValue(strategy = GenerationType.IDENTITY) 

private Integer id;

(二)BindingResult对象的使用

Controller 

@RequestMapping("/sender/message")  
    @ResponseBody  
    public ResponseBean sendMessage(@Valid Message messageBean, BindingResult bindingResult){  
  
        ......  
  
        if (bindingResult.hasErrors()) {  
            System.out.println("验证失败!");  
        }  

。。。。。。
}

注意:BindingResult 对象必须在 @Valid 的紧挨着的后面,否则接收不到错误信息。 

猜你喜欢

转载自blog.csdn.net/weixin_30563001/article/details/81387267