[英]Spring Data JPA Query gives java.sql.SQLException: Invalid column type error
[英]Spring Data JPA: @Query gives error java.sql.SQLException: Column 'id' not found
我正在嘗試運行以下查詢
@org.springframework.stereotype.Repository
public interface ReportingParamRepository extends Repository<ReportingParamDAO, Integer> {
@Query(nativeQuery = true, value = "SELECT student, AVG(height) FROM ReportingParams GROUP BY student")
public List<ReportingParamDAO> getAverageGroupByStudent();
}
這是DAO
@Entity
@Table(name = "ReportingParams")
@NamedQuery(name = "ReportingParams.findAll", query = "SELECT r FROM ReportingParamDAO r")
public class ReportingParamDAO extends BaseDAO<Integer, ReportingParam> implements DAO<Integer> {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(unique = true, nullable = false)
private Integer id;
@ManyToOne
@JoinColumn(name = "student", nullable = true)
private StudentDAO studentBean;
@Column
private Long height;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public StudentDAO getStudentBean() {
return studentBean;
}
public void setStudentBean(StudentDAO studentBean) {
this.studentBean = studentBean;
}
public Long getHeight() {
return height;
}
public void setHeight(Long height) {
this.height = height;
}
}
但是在執行存儲庫方法時,出現以下錯誤
java.sql.SQLException: Column 'id' not found.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964) ~[mysql-connector-java-5.1.43.jar:5.1.43]
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:897) ~[mysql-connector-java-5.1.43.jar:5.1.43]
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:886) ~[mysql-connector-java-5.1.43.jar:5.1.43]
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:860) ~[mysql-connector-java-5.1.43.jar:5.1.43]
at com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1077) ~[mysql-connector-java-5.1.43.jar:5.1.43]
at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2567) ~[mysql-connector-java-5.1.43.jar:5.1.43]
at org.apache.commons.dbcp2.DelegatingResultSet.getInt(DelegatingResultSet.java:283) ~[commons-dbcp2-2.1.1.jar:2.1.1]
at org.apache.commons.dbcp2.DelegatingResultSet.getInt(DelegatingResultSet.java:283) ~[commons-dbcp2-2.1.1.jar:2.1.1]
at org.hibernate.type.descriptor.sql.IntegerTypeDescriptor$2.doExtract(IntegerTypeDescriptor.java:62) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:47) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:238) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:234) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:224) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:300) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.loader.Loader.extractKeysFromResultSet(Loader.java:789) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:714) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.loader.Loader.processResultSet(Loader.java:972) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.loader.Loader.doQuery(Loader.java:930) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:336) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.loader.Loader.doList(Loader.java:2617) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.loader.Loader.doList(Loader.java:2600) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2429) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.loader.Loader.list(Loader.java:2424) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
...
如果我直接從mysql終端運行查詢,它可以正常工作,並且我得到正確的輸出。 有人可以幫忙嗎? 謝謝 !!
這行不通。 您的查詢獲取一個學生對象,您試圖將其映射到ReportingParamDAO的列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.