我使用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