嗨,我有點絕望關於我一直在努力的一個問題。作爲一種練習,我正在嘗試構建非常簡單的電子銀行應用程序。因此,一個表稱爲產品(str productName,str descr),另一個表爲savingsAccounts(int accountNo,int clientNo,int balance)。我有兩個類:J2EE JPA和類繼承 - 未知列'字段列表'
savingsAccount.java
@Entity
@Table(name = "savingsAccounts")
@NamedQueries({
@NamedQuery(name = "savingsAccount.findAll", query = "SELECT s FROM savingsAccount s"),
@NamedQuery(name = "savingsAccount.findByClientNo", query = "SELECT s FROM savingsAccount s WHERE s.clientNo = :p_clientNo")
})
public class savingsAccount extends product implements Serializable {
@Id
@Basic(optional = false)
@NotNull
@Column(name = "accountNo")
private Integer accountNo;
@Basic(optional = false)
@NotNull
@Column(name = "clientNo")
private Integer clientNo;
@Basic(optional = false)
@NotNull
@Column(name = "balance")
private double balance;
//getters and setters nad constructorscode here
product.java
@Entity
@Table(name = "products")
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public class product implements Serializable {
@Id
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 20)
@Column(name = "productName")
public String productName;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 100)
@Column(name = "descr")
private String descr;
// gettes和setter contructors
,但是當我運行namedquery savingsAccount.findByClientNo它給了我這樣的說法:
SELECT accountNo, productName, balance, clientNo, descr FROM savingsAccounts WHERE (clientNo = ?)
它給了我這個錯誤: 內部異常:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'descr' in 'field list'
我莫名其妙地「感覺」的問題是,在SavingAccount表中沒有名爲descr的字段,但我真的不知道如何使其工作......感謝所有人的幫助。
感謝人們提供非常有用的提示。也許我會試圖解釋我的動機,以這種方式進行。也許你會告訴我這是完全錯誤的:)。原因是爲了使它更靈活 - 例如當產品說明會發生變化時,那麼數據庫表中的一個簡單更新將完成整個工作,並且就所有儲蓄賬戶具有相同描述而言,我試圖擴展類產品。 –
第二個原因是顯示 - 所有需要顯示的信息都應該包含在同一個類中 - 例如產品概覽將顯示關於餘額,accountNo,clientNo和所需字段descr的一行信息。也許有一些更優雅的方式...... :) –