我使用JPA 2.0與Hibernate 4.1.0,我有我的Entity
級以下JPA實體下拉列
@Entity
@Table(name = "PRODUCTS")
public class Product {
private String productNo;
private String productDesc;
private Date deliveryDate;
private Date invoiceDate;
private Integer productCurrencyId;
private String productCurrency;
以上將被應用用於顯示的記錄以及爲CRUD操作。
從上面的productCurrencyId
和productCurrency
將在應用程序中使用下拉貨幣的選擇字段
我想知道它是否是最好有一個單獨的實體類這兩個或相同的使用Product
class?我之所以問這個問題,是因爲它是否相同Product
類如何查詢我的貨幣下拉列的值?
我知道我可以在產品類@NamedQuery(name
的DAOImpl
中使用@NamedQueries
來檢索下拉記錄。如果我想使用@NamedQuery(name
那麼我有硬編碼一個SQL語句的權利?如果我沒有爲下拉值使用單獨的實體類,有什麼方法可以使用@NamedQuery(name
或其他一些機制來獲取貨幣下拉的記錄?這種情況的最佳方法是什麼?
任何幫助是非常可觀的。
感謝
編輯1
我想問一下關於實體類的另一個問題是,如果我有一些其他領域的下拉列,我應該創建一個單獨的實體類所有這些下降領域?
感謝您的回覆。我想問一個問題,是不是需要在'Product'實體中聲明'currencyId'?或'@JoinColumn(name =「currencyId」) 私人貨幣幣種;'夠了嗎?謝謝 – user75ponic
還有一點是'貨幣''實體'應該是'currencyId'而不是'id'?那是我們映射'onetoone'的權利嗎? – user75ponic
OneToOne註釋會自動引用被引用實體的@Id列,因此不需要在Product實體中將currencyId聲明爲int字段。在這種情況下,JoinColumn用於指定Product表中的聯合ID列的名稱,但根據默認命名約定(類似currency_ID),可以省略JoinColumn。 Currency實體中的Id列可以採用任何名稱,因爲OneToOne默認情況下會使用Id註釋的字段,無論其名稱如何。 – German