0

亲爱的所有休眠开发人员,
我在我的应用程序中使用了以下休眠 hbm2java 类。当我通过连接两个表从数据库中获取数据时,我需要名称字段。(我必须在 UI 的网格中显示此数据。)
但是,当我尝试将记录插入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,但是我不想使用冗余代码。请给我任何建议。

如果我问任何重复的问题,请忽略并指出正确的解决方案。

提前致谢。

4

1 回答 1

6

如果我理解正确,您希望在您的实体中有一个 name 属性,但您希望这个属性是非持久的(即被 Hibernate 完全忽略)。

如果是这样,这就是 @Transient 的用途:

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

对于 Hibernate 从数据库加载的每个实例,name 属性当然是 null。如果您分配一个,它只会有一个值。

于 2012-05-15T13:24:57.063 回答