2011-10-24 67 views

回答

1

不,你不能。您可以將兩個不同的類映射到同一個表中,但不能反過來。

這樣做的原因限制很簡單,將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 {} 
+0

我的問題可能不夠準確。我不想從視圖中獲得完全託管實體,只需使用UserDAO方法,如:'List getUsersFromView()'。我想我可以使用原生查詢和映射結果到實體類來完成此操作。不確定,因爲我是JPA新手,但會檢查。 – alephx

相關問題