Отображение двух классов в одной таблице

Пусть у меня есть таблица

USER
-id :long
-логин :varchar
-оружие :varchar
-magic :varchar

И я хочу сопоставить эту таблицу с двумя классами (, используя Hibernate/JPA)

class Mag  
{   
   long id;  
   String login;  
   String weapon;  
}  

и

class Warrior  
{  
   long id;  
   String login;  
   String magic;  
}  

. И если я отправлю запрос 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;  
}   

Но @Inheritance требует столбца дискриминатора, а у меня его нет.

5
задан Ilya 3 May 2012 в 07:08
поделиться