在单个表上映射两个类

Ily*_*lya 5 java hibernate jpa

我来吧,我有桌子

USER
-id:long
-login:varchar
-weapon:varchar
-magic:varchar

我希望将这个表映射到两个类(使用Hibernate/JPA)

class Mag  
{   
   long id;  
   String login;  
   String weapon;  
}  
Run Code Online (Sandbox Code Playgroud)

class Warrior  
{  
   long id;  
   String login;  
   String magic;  
}  
Run Code Online (Sandbox Code Playgroud)

如果我发送HQL查询:SELECT m FROM Mag m WHERE m.login = ?然后我得到Mag实例
,如果我发送HQL查询:SELECT w FROM Warrior w WHERE w.login = ?然后我得到Warrior实例
我尝试做这样的事情

@Entity  
@Table(name = "User")  
class User   
{  
   long id;  
   String login;  
}  

@Entity  
class Mag extends User  
{  
   String magic;  
}  

@Entity  
class Warrior extends User   
{  
   String weapon;  
}   
Run Code Online (Sandbox Code Playgroud)

但@Inheritance要求鉴别器列,但我没有鉴别器.

bee*_*jay 8

您正在寻找MappedSuperClass,它允许子类从超类继承注释而无需鉴别器.