2010-05-28 45 views
1

我是JPA的新手。如何使用JPA註釋將搜索對象映射到具有更多字段的類

我需要將搜索對象映射到表。 搜索對象只有和id,名稱。大對象有更多的文件編號,名稱,地址等等。

我將此作爲大對象使用 view plaincopy to clipboardprint?

我用這個大對象

@Entity 
@Table(name="users") 
public class User { 

@Id 
@GeneratedValue(strategy = GenerationType.AUTO) 
private long id; 

private String name; 
private String adress; 
private String keywords; 
} 

//this is my search object 
@XXX 
public class UserSearch { 

@Id 
@GeneratedValue(strategy = GenerationType.AUTO) 
private long id; 

private String name; 

} 

我需要使用地圖搜索對象表用戶的哪些註解?

我使用spring + struts2 + hibernate + JPA。

幫助表示讚賞! 謝謝!

回答

0

就這樣?它應該工作。你嘗試過,並得到一個錯誤?告訴我們錯誤是什麼可能會有所幫助。如果可能的話,使局部視圖不可變也是明智的。如果你解釋爲什麼你想這樣做,可能會有其他選擇:)

@Entity 
@org.hibernate.annotations.Entity(mutable=false) 
@Table(name="users") 
public class UserSearch implements Serializable {} 

應該工作得很好。

1

我需要使用哪些註釋將搜索對象映射到表用戶?

你需要的,如果你想將它映射到不默認爲實體名稱的表使用@Table註釋:

@Entity 
@Table(name = "Users") 
public class UserSearch { 
    @Id @GeneratedValue(strategy = GenerationType.AUTO) 
    private long id; 

    private String name; 

} 

但是,如果這個類是用於搜索結果,如果你不打算堅持實例,你並不需要使它成爲一個實體。假設你提供適當的構造函數:

public class UserSearch { 
    private long id; 
    private String name; 

    public UserSearch(long id, String name) { 
     this.id = id; 
     this.name = name; 
    } 
} 

你可以結合使用這個類與選擇新建,就像這樣:

SELECT NEW com.acme.UserSearch(u.id, u.name) FROM User u 
相關問題