‘field list’gwt项目中的未知列’… jdoDetachedState’
我有奇怪的问题。 当我在没有gwt的情况下运行我的项目时,只需要hibernate – 一切正常,但是当我在gwt中插入代码时,会出现此exception。
PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions WARN: SQL Error: 1054, SQLState: 42S22 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions ERROR: Unknown column 'employee0_.jdoDetachedState' in 'field list'
我这样做了
List list = session.createQuery("FROM Employee").list();
我的查询看起来像:
Hibernate: select employee0_.id as id1_1_, employee0_.born as born2_1_, employee0_.department as departme3_1_, employee0_.first_name as first_na4_1_, employee0_.jdoDetachedState as jdoDetac5_1_, employee0_.post as post8_1_, employee0_.salary as salary6_1_, employee0_.second_name as second_n7_1_ from employee employee0_
和我的class级一起看
@Entity @Table(name="employee") public class Employee implements Serializable{ @Id public Integer id; @Column(nullable=false) public String first_name; @Column(nullable=false) public String second_name; @OneToOne @JoinColumn(name = "post") public Position post; @Column(nullable=false) public String born; @Column(nullable=false) public Integer salary; public String department; public Employee(){} ... public getters and setters }
其他查询工作,但这不。 我发现https://stackoverflow.com/questions/16319853/unexpected-jdodetachedstate-column-when-using-hibernate-in-gwt-project但无法理解它是如何帮助的。
我遇到了同样的问题,我在这个网站上找到了添加这些行的解决方案:
@Transient protected Object[] jdoDetachedState;
这对我有帮助。 也许,这会对任何人有所帮助。
这是因为您没有在Employee
类中提到jdoDetachedState
字段的映射, jdoDetachedState
在Employee
类中添加jdoDetachedState
字段的映射
@Column(nullable=false) public String jdoDetachedState;
还要确保您的表列名称与Entity类字段名称相同,否则使用@Column
注释的name
属性作为
@Column(name = "column_name",nullable=false) public String fieldName;
希望这能解决你的问题
现在不明白问题。 我有’ 部门 ‘表。 它工作正常,但是当我在表中添加一列时,它也开始失败并出现相同的exception:
Unknown column 'department0_.jdoDetachedState' in 'field list'
加
@Column(nullable=false)public String jdoDetachedState;
没有帮助
我找到了解决方案! 当我在mysql jdoDetachedState VARCHAR(11)
列添加到我的表时,所有开始工作。
对于简单的谷歌应用程序引擎项目(NON-maven),您可以通过取消选中使用datanucleus JDO / JPA访问数据存储区来解决此问题
步 :
- 转到Google应用引擎插件选项。
- 点击“部署到App Engine”
- 单击应用程序引擎项目设置选项
-
取消选中“使用DataNucleus JDO / JPA访问数据存储区”选项
- 并部署或运行
我找到了解决方案,我不知道正确的编程方式,但它解决了我的问题! 我改变了我的表,并将text
列的jdoDetachedState
列添加到mysql中的表中。 注意:不要在java文件中添加jdoDetachedState。
- 如何在GWT中使用java.util.Calendar
- Google Web Toolkit(GWT)创建读取更新和删除(CRUD)应用程序的示例
- 使用JPA的GWT – 没有持久性提供程序
- 关于GWT内MVP的问题。 (总体概述)
- Google App Engine中的漂亮url
- GWT:处理传入的JSON字符串
- GWT + Jetty JSP编译问题的解决方法? (Java 1.5源代码级别无法识别)
- ClassCastException:org.apache.xerces.parsers.XIncludeAwareParserConfiguration无法强制转换为org.apache.xerces.xni.parser.XMLParserConfiguration
- Gwt编辑器不仅具有getter / setter bean类