Hibernate-继承映射

2014-11-24 01:19:48 · 作者: · 浏览: 0

hibernate的继承映射有三种:subclass、joined-subclass、union-subclass

这三种各有其能,在不能的情况能发挥不能作用。

1、subclass 一张大表

需要引入辨别者列(discriminator)

  
	
  
		
   
		
    
     
     
   
		
   
		
   
		
   
		
   
		
   
	   	
   
		
    
     
     
     
     
   
		
   
		
   
    discriminator-value="雇员"> 
     
     
     
     
     
     
     
      
      
     
     
    
     discriminator-value="经理"> 
      
      
      
      
       
       
      
     
   
		
   
		
   
    discriminator-value="顾客"> 
     
     
     
     
   
	
  

所有字段在一个大表里,进行统计分析的时候,比较好用。

2、joined-subclass 父子表

使用这种策略,必须使用 元素映射父子类的共有主键, 元素映射的数据列即是主键列,也是外键列。

  	
	
  
		
   
		
    
     
     
   
		
   
		
   
		
   
		
   
		
    
     
     
     
     
   
		
   
		
    
     <
    key column="employee_id"/> 
     
     
     
     
     
     
     
      
      
     
     
     
      
      
      
      
      
      
       
       
      
     
   
		
   
		
    
     <
    key column="customer_id"/> 
     
     
     
   
	
  

一张大表不可能无限的大,大到一定程度就要生产字表

3、union-subclass 分类职能表

按列别分表,使每一个面向一个类别,即可以单独使用,也可以关系在一起形成一张大表。

  	
	
  
		
   
		
    
     
     
   
		
   
		
   
		
   
		
   
		
    
     
     
     
     
   
		
   
		
    
     
     
     
     
     
     
     
      
      
     
     
     
      
      
      
      
       
       
      
     
   
		
   
		
    
     
     
     
   
	
  


总结:

一生二,二生四,四生万象,最顶层的表适合从全局进行统计,不适合表象展现,最底层的表适合各种表象得展现,但很难掌控全局。