Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate-如何在插入时忽略未映射的字段_Hibernate_Spring Mvc - Fatal编程技术网

Hibernate-如何在插入时忽略未映射的字段

Hibernate-如何在插入时忽略未映射的字段,hibernate,spring-mvc,Hibernate,Spring Mvc,尊敬的所有hibernate开发人员, 下面是我在应用程序中使用的hibernate hbm2java类。当我通过连接两个表从数据库获取数据时,我需要name字段。(此数据必须显示在UI的网格中。) 但是,当我尝试将记录插入到rxJournal表中时,遇到了问题。 错误是: Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'name' in 'field list' 我

尊敬的所有hibernate开发人员,
下面是我在应用程序中使用的hibernate hbm2java类。当我通过连接两个表从数据库获取数据时,我需要name字段。(此数据必须显示在UI的网格中。)
但是,当我尝试将记录插入到rxJournal表中时,遇到了问题。
错误是:

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'name' in 'field list'  
我想在使用hibernate插入或更新记录时忽略/跳过“name”字段。 以下是我的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;}
}
我可以通过单独删除name字段来创建另一个bean,但是我不想使用冗余代码。请给我一些建议

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


提前感谢。

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

如果是,这就是@Transient的作用:

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

当然,对于Hibernate从数据库加载的每个实例,name属性都将为null。只有当您指定一个值时,它才会有一个值。

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

如果是,这就是@Transient的作用:

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

当然,对于Hibernate从数据库加载的每个实例,name属性都将为null。只有分配一个值,它才会有一个值。

Hai@JB Nizet,非常感谢。是的,这正是我想要的。您帮助了我。Hai@JB Nizet,您的解决方案“@Transient”在我的本地服务器和测试服务器上运行良好。然而,当我进入生产阶段时,我得到了一个错误。我想我少了一些罐子。我的“pom.xml”中有“persistenceapi.1.0.jar”和“hibernate core.3.6.10.final.jar”。请建议我是否遗漏了任何内容。再问一个问题,在哪里显示您的pom、确切的错误消息以及异常的堆栈跟踪。Hai@JB Nizet,我已经问了新问题。Hai@JB Nizet,非常感谢。是的,这正是我想要的。您帮助了我。Hai@JB Nizet,您的解决方案“@Transient”在我的本地服务器和测试服务器上运行良好。然而,当我进入生产阶段时,我得到了一个错误。我想我少了一些罐子。我的“pom.xml”中有“persistenceapi.1.0.jar”和“hibernate core.3.6.10.final.jar”。请建议我是否遗漏了任何内容。再问一个问题,在哪里显示您的pom、确切的错误消息以及异常的堆栈跟踪。Hai@JB Nizet,我已经问了新问题。