亲爱的所有hibernate开发人员,
我在我的应用程序中使用的以下hibernate hbm2java类。当我通过连接两个表从数据库获取数据时,我需要名称字段。 (这个数据我必须在UI的网格中显示。)
但是当我尝试在 rxJournal 表中插入记录时,我遇到了问题
错误是:
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'name' in 'field list'
我想忽略/跳过'name'字段使用hibernate插入或更新记录。 以下是我的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,但是我不想使用冗余代码。请给我任何建议。
如果我问任何重复的问题并指出我正确的解决方案,请忽略。
提前致谢。
答案 0 :(得分:6)
如果我理解正确,你想在你的实体中有一个name属性,但你希望这个属性是非持久的(即Hibernate完全忽略它)。
如果是这样,那就是@Transient的用途:
@Transient
public String getName() {
return name;
}
对于Hibernate从数据库加载的每个实例,name属性当然都是null。如果您指定一个值,它将只有一个值。