@MappedSuperclass的用法

@MappedSuperclass的用法

@MappedSuperclass的用法 
用在实体的继承过程中的父类上; 

父类Cat 

Java代码   收藏代码  

  1. package com.xj.model;  

  2.   

  3. import javax.persistence.GeneratedValue;  

  4. import javax.persistence.Id;  

  5. import javax.persistence.MappedSuperclass;  

  6.   

  7. @MappedSuperclass  

  8. public class Cat {  

  9.     private Long id;  

  10.     private String name;  

  11.     @Id  

  12.     @GeneratedValue  

  13.     public Long getId() {  

  14.         return id;  

  15.     }  

  16.     public void setId(Long id) {  

  17.         this.id = id;  

  18.     }  

  19.     public String getName() {  

  20.         return name;  

  21.     }  

  22.     public void setName(String name) {  

  23.         this.name = name;  

  24.     }  

  25. }  



子类1 BeijingCat 

Java代码   收藏代码  

  1. package com.xj.model;  

  2.   

  3. import javax.persistence.Entity;  

  4. import javax.persistence.Table;  

  5.   

  6. @Entity  

  7. @Table(name="t_beijingcat")  

  8. public class BeijingCat extends Cat {  

  9.     private String beijing;  

  10.   

  11.     public String getBeijing() {  

  12.         return beijing;  

  13.     }  

  14.   

  15.     public void setBeijing(String beijing) {  

  16.         this.beijing = beijing;  

  17.     }  

  18.   

  19. }  



子类2 ShanghaiCat 

Java代码   收藏代码  

  1. package com.xj.model;  

  2.   

  3. import javax.persistence.Entity;  

  4. import javax.persistence.Table;  

  5.   

  6. @Entity  

  7. @Table(name="t_shanghaiCat")  

  8. public class ShanghaiCat extends Cat {  

  9.     private String shanghai;  

  10.   

  11.     public String getShanghai() {  

  12.         return shanghai;  

  13.     }  

  14.   

  15.     public void setShanghai(String shanghai) {  

  16.         this.shanghai = shanghai;  

  17.     }  

  18. }  



结果生成 两张表t_beijingcat、 t_shanghaicat 

如果不用@MappedSuperclass 而用@Entity替换的话,只会生成一张cat表,字段有:id,name,shanghaicat,bejingcat 

你可能感兴趣的:(@MappedSuperclass的用法)