2012-05-15 41 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,确切的错误信息,以及异常的堆栈跟踪。 –