![](/img/trans.png)
[英]How to map one class to different tables using hibernate/jpa annotations
[英]How to map a search object to a class with more fields with JPA annotations
我是JPA的新手。
我需要將搜索對象映射到表。 搜索對象只有ID和名稱。 大對象具有更多的字段ID,名稱,地址等。
我將其用作剪貼板打印的大對象視圖?
我把它當作大物件
@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。
感謝幫助! 謝謝!
我需要使用什么注釋將搜索對象映射到表用戶?
如果要將其映射到不默認為實體名稱的表,則需要使用@Table
批注:
@Entity
@Table(name = "Users")
public class UserSearch {
@Id @GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String name;
}
但是,如果將該類用於搜索結果,並且您不打算保留UserSearch
實例,則實際上並不需要使其成為一個實體。 假設您提供適當的構造函數:
public class UserSearch {
private long id;
private String name;
public UserSearch(long id, String name) {
this.id = id;
this.name = name;
}
}
您可以將此類與SELECT NEW結合使用,如下所示:
SELECT NEW com.acme.UserSearch(u.id, u.name) FROM User u
就這樣嗎 它應該工作。 您嘗試過並收到錯誤消息嗎? 告訴我們錯誤是什么可能會有所幫助。 如果可能的話,使局部視圖不變是很明智的。 如果您解釋了為什么要這樣做,則可能有其他選擇:)
@Entity
@org.hibernate.annotations.Entity(mutable=false)
@Table(name="users")
public class UserSearch implements Serializable {}
應該工作正常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.