Нет, ты не можешь.Вы можете отобразить два разных класса в одну и ту же таблицу, но не наоборот.
Причина этого ограничения проста: откуда поставщик JPA узнает, какую таблицу вы имеете в виду в следующем запросе:
em.createQuery("SELECT u FROM User u");
Однако вы можете захотеть создать базовый класс AbstractUser
со всеми свойствами и должны очистить подклассы: User
и, например, VUser
.Последние два класса будут отображаться в разные таблицы / представления.См. MappedSuperclass и пример там.
@MappedSuperclass
public abstract class AbstractUser {
//all your columns/JPA mapping go here
}
@Entity
@Table(name="USERS")
public class User extends AbstractUser {}
@Entity
@Table(name="V_USERS")
public class VUser extends AbstractUser {}