簡體   English   中英

如何使用JPA批注將搜索對象映射到具有更多字段的類

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM