每个人都非常有帮助,因为我尝试在转换项目中使用Oracle学习使用Hibernate的Struts2,我真的很感激。在完成我的项目之前,我已经遇到了一个新的障碍,我希望这是我的最后一次。我的数据库已经存在,所以我不想让我的DBA参与其中。
我有一个表单,允许用户通过product_name查询products表中的产品。我需要显示找到的产品及其定价表中的相应定价数据。这种关系是一对多的,因为对于产品中的每一行,定价表中可以有零到多个相应的行。
product table pricing table
PRODUCT_NAME PRODUCT_NAME
STATE_CD STATE_CD
column3 RATE_TYPE
column4 RATE
column5
column6
product表具有product_name和state_cd的复合键主键(product_pk)。定价表具有product_name,state_cd和rate_type的复合主键(pricing_pk)。定价表还有一个产品和state_cd的复合外键(product_pricing_fk)。
我一直在阅读一些关于如何设置它的页面,但我感到比起初时更加困惑。我基本上不知道如何使用注释进行设置。
问题#1 - 我目前有一个Product.java类,每个字段都有getter和setter,它正确显示我的结果。我没有正确的是我如何表明该表有一个复合键。
问题#2 - 我是否需要为定价表创建一个单独的类,其中包含定价表中每个字段的getter和setter,或者这些字段是否在Product.java中?
问题#3 - 如何判断外键?
这是我目前的Product.java。
package com.memo.model;
import java.io.Serializable;
import java.sql.Date;
import java.util.List;
import java.util.ArrayList;
import javax.persistence.Id;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
@Entity
@Table(name = "Product")
public class Product implements Serializable {
private static final long serialVersionUID = 1L;
private String productName;
private String stateCd;
private String column3;
@Id
@Column(name = "PRODUCT_NAME")
public String getProductName() {
return productName;
}
@Id
@Column(name = "STATE_CD")
public String getStateCd() {
return stateCd;
}
@Column(name = "COLUMN3")
public String getColumn3() {
return column3;
}
....
public void setProduct(String product) {
this.product = product;
}
public void setStateCd(String stateCd) {
this.stateCd = stateCd;
}
public void setColumn3(String column3) {
this.column3 = column3;
}
...
任何帮助将不胜感激!!!