2012-05-15 38 views
0

親愛的所有休眠開發人員,
以下hibernate hbm2java類我在我的應用程序中使用。我需要名稱字段,而我通過連接兩個表從數據庫中獲取數據。 (這個數據我必須在用戶界面中的網格中顯示。)
但是,當我試圖插入一條記錄到rxJournal表時,我遇到了問題。
錯誤是:休眠 - 如何忽略未映射的字段,而插入

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'name' in 'field list' 

我想忽略/跳過「名稱」提起在插入或使用休眠更新記錄。 以下是我HBM類:

@Entity 
@Table(name = "rxJournal", catalog = "Company") 
public class RxJournalBean implements java.io.Serializable { 

private Integer rxJournalId; 
private String entryMemo; 
private String name; 

    .... 

@Id 
@GeneratedValue(strategy = IDENTITY) 
@Column(name = "rxJournalID", unique = true, nullable = false) 
public Integer getRxJournalId() {return this.rxJournalId;} 
public void setRxJournalId(Integer rxJournalId) {this.rxJournalId = rxJournalId;} 

@Column(name = "EntryMemo") 
public String getEntryMemo() {return this.entryMemo;} 
public void setEntryMemo(String entryMemo) {this.entryMemo = entryMemo;} 

public String getName() {return name;} 
public void setName(String name) {this.name = name;} 
} 

我可以創建單獨刪除名稱字段另一個bean,但我不希望使用冗餘代碼。請給我任何建議。

如果我問任何重複的問題並指出我正確的解決方案,請忽略。

在此先感謝。

回答

5

如果我理解正確,您希望在您的實體中擁有一個名稱屬性,但是您希望此屬性爲非持久性(即完全被Hibernate忽略)。

如果是這樣,那是@Transient是什麼:

@Transient 
public String getName() { 
    return name; 
} 

name屬性當然是空從數據庫由Hibernate加載的每個實例。如果你指定一個,它將只有一個值。

+0

Hai @JB Nizet,非常感謝。是的,那正是我所尋找的。你幫了我。 – userV

+0

Hai @JB Nizet,你的解決方案「@Transient」在我的本地和測試服務器上工作正常。但是,當我轉向生產時,我得到錯誤。我想我錯過了一些罐子。我在我的「pom.xml」中有「persistance-api.1.0.jar」和「hibernate-core.3.6.10.final.jar」。請建議如果我缺少任何東西。 – userV

+0

問另一個問題,你在哪裏顯示你的pom,確切的錯誤信息,以及異常的堆棧跟蹤。 –