弗吉尼亚州:1030) 位于com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) 在com.mysql.jdbc.MysqlIO.checkErrorPacket上(MysqlIO.java:3491) 在com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)上 位于com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936) 位于com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060) 位于com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542) 位于com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734) 位于com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1885) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)中 位于java.lang.reflect.Method.invoke(Method.java:597) 位于org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:122) ... 还有16个
查看此代码:弗吉尼亚州:1030) 位于com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) 在com.mysql.jdbc.MysqlIO.checkErrorPacket上(MysqlIO.java:3491) 在com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)上 位于com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936) 位于com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060) 位于com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542) 位于com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734) 位于com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1885) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)中 位于java.lang.reflect.Method.invoke(Method.java:597) 位于org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:122) ... 还有16个,java,hibernate,Java,Hibernate,查看此代码: @JoinTable(name="Houses", joinColumns = @JoinColumn(name="id"), inverseJoinColumns=@JoinColumn(name="houses_id")) 我不确定您在这里想要实现什么,但它通常用于解决与中间表的许多关系。因此,此代码意味着您有带有id和Houses\u id列的表Houses。错误消息说houses表中没有houses\u id(我觉得这很合理)也许您应该试试manytone和JoinCol
@JoinTable(name="Houses", joinColumns = @JoinColumn(name="id"), inverseJoinColumns=@JoinColumn(name="houses_id"))
我不确定您在这里想要实现什么,但它通常用于解决与中间表的许多关系。因此,此代码意味着您有带有id
和Houses\u id
列的表Houses
。错误消息说houses
表中没有houses\u id
(我觉得这很合理)也许您应该试试manytone和JoinColumn?例如:
@JoinColumn(name="house_id")
或者
houses\u id
,如果这是streets表中的外键。如果这真的是多对一关系,复数听起来很奇怪。请确保您调用的表具有正确的列。我有这个问题,我发现映射的域列在数据库中不匹配 只需检查POJO中的变量名和数据库中提供的名称即可。当它们不相同时,将抛出此错误。请检查您的数据库是否包含所有表。如果表中缺少任何表或属性,请将它们添加到数据库中,然后重新添加hibernate映射文件。我用那种方法修正了这个错误。我的数据库的两个表中缺少2个属性,一旦我添加了它们并重新添加hibernate,错误就被修复了。检查类上的getter和setter名称,它们都必须相同
public String getNome() {//wrong Nome
return name;
}
public void getName(String name) {//right
this.name = name;
}
我知道有一个公认的答案。我想向出现在本页的任何人提一个备选答案,在字段列表中有相同的问题-未知列 当我通过映射查询UserSurveyLog(这两个表之间有公共SurveyID)时,我试图从Survey表中获取调查细节 用户调查表中的映射
@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(referencedColumnName = "SurveyID")
private Survey survey;
public Survey getSurvey() { return survey; }
public void setSurvey(Survey survey) { this.survey = survey; }
public Integer getUserSurveyLogID() {
return userSurveyLogID;
}
看看我收到的这个错误
Hibernate:插入hifiniteDB.UserSurveyLog(CompletedDate、CreatedBySerName、CreatedDate、ExpiryDate、LastDeliveredDate、ModifiedBySerName、ModifiedDate、OrgNodeID、ProgramUserID、RootOrgNodeID、SurveyID、SurveyStatus、SurveyTriggerID、SurveyTriggerType、UserDiagnosid、UserID)值(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
2019-10-09 14:39:45.722[https-jsse-nio-8443-exec-3]错误o.h.e.jdbc.spi.SqlExceptionHelper-未知列“字段列表”中的“调查”
请注意,survey_SurveyID是通过我在survey表上所做的映射添加的。不知道为什么仅执行一次获取操作就会将此列添加到本应独立的Insert on UserSurvey日志中
我解决这个问题的方法是在@join列上添加insertable=false、updateable=false
@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(referencedColumnName = "SurveyID", insertable = false,updatable = false)
private Survey survey;
我注意到,虽然我使用了userName或bloodGroup之类的变量名,但它得到的错误是“由以下原因引起的:java.sql.SQLSyntaxErrorException:未知列'field list'中的'user0\u0.blood\u group'
若要解决此问题,请更改用户名或血型等变量名。我希望它会得到预期结果。Aaaa!代码太多!!!为什么街道对象中同时包含房屋ID和房屋?是否尝试直接运行此查询?
街道
表是否包含房屋ID
列?如果添加注释,请确保hat no whitespace left你应该首先调试你的sql查询,如果它运行正常,那么问题就出在java代码中。但是现在看来你的查询在第一轮中是不正确的是,你是对的!!我删除了一个多么悲伤的人,并写道:@ManyToOne@JoinColumn(name=“houses_id”)public House getHouse(){return House;}public void setHouse(House){this.house=house;}现在我需要与house进行测试。这应该是一个评论,而不是问题的答案。添加一些描述并解释更多细节。类似地,我发现MySQL Workbench中的某个列名有多余的前导空间-不确定它们是如何到达的,但一旦删除,错误就被解决了。我使用t看到了这些空间表检查器。若要展开注释,请同时检查绑定字段是否与数据库中的字段同名。您可能认为您正在使用某种命名策略在snakecase和camelcase之间进行转换,但您没有这样做。我本不希望这样做,但它成功了(我在“字段列表”中发布了未知列“appointmen0\ apptDesc”)。有人能澄清为什么这是一个解决方案,以及为什么当驼峰案例与DB匹配时不允许标准驼峰案例?
log4j:WARN No appenders could be found for logger (org.jboss.logging).
log4j:WARN Please initialize the log4j system properly.
Hibernate: select this_.id as id1_1_, this_.houses_id as houses2_1_1_, this_.name as name1_1_, this_1_.houses_id as houses3_0_1_, house2_.id as id0_0_, house2_.name as name0_0_ from Streets this_ left outer join Houses this_1_ on this_.id=this_1_.id left outer join Houses house2_ on this_1_.houses_id=house2_.id
org.hibernate.exception.SQLGrammarException: Unknown column 'this_1_.houses_id' in 'field list'
at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:82)
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110)
at org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:129)
at org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81)
at $Proxy14.executeQuery(Unknown Source)
at org.hibernate.loader.Loader.getResultSet(Loader.java:2031)
at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1832)
at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1811)
at org.hibernate.loader.Loader.doQuery(Loader.java:899)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:341)
at org.hibernate.loader.Loader.doList(Loader.java:2516)
at org.hibernate.loader.Loader.doList(Loader.java:2502)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2332)
at org.hibernate.loader.Loader.list(Loader.java:2327)
at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:124)
at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1621)
at org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:374)
at com.ff.DAO.StreetDAOImpl.getAllStreets(StreetDAOImpl.java:48)
at FFMain.main(FFMain.java:58)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'this_1_.houses_id' in 'field list'
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.Util.getInstance(Util.java:381)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1885)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:122)
... 16 more
@JoinTable(name="Houses", joinColumns = @JoinColumn(name="id"), inverseJoinColumns=@JoinColumn(name="houses_id"))
@JoinColumn(name="house_id")
public String getNome() {//wrong Nome
return name;
}
public void getName(String name) {//right
this.name = name;
}
@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(referencedColumnName = "SurveyID")
private Survey survey;
public Survey getSurvey() { return survey; }
public void setSurvey(Survey survey) { this.survey = survey; }
public Integer getUserSurveyLogID() {
return userSurveyLogID;
}
@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(referencedColumnName = "SurveyID", insertable = false,updatable = false)
private Survey survey;