Hibernate:PSQLException:错误:列“column_name”不存在

时间:2013-12-19 17:29:42

标签: java hibernate postgresql

我正在尝试从现有数据库中获取信息。

的hibernate.cfg.xml

        <?xml version="1.0" encoding="UTF-8"?>
        <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD    3.0//EN"
                                             "http://hibernate.sourceforge.net/hibernate-    configuration-3.0.dtd">
        <hibernate-configuration>
            <session-factory>

            <property name="connection.url">jdbc:postgresql://localhost:5432/ecm_politik_mt</property>
            <property name="connection.username">ecm</property>
            <property name="connection.password">ecm</property>
            <property name="connection.driver_class">org.postgresql.Driver</property>
            <property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>
            <property name="cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
            <property name="current_session_context_class">thread</property>
            <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>

            <mapping class="com.database.Survey_question" />
        </session-factory>
    </hibernate-configuration>

我尝试映射的实体:

       package com.database;

        import java.io.Serializable; 

        import javax.persistence.Column;

        import javax.persistence.Entity;

        import javax.persistence.GeneratedValue;

        import javax.persistence.Id;

        import javax.persistence.Table;

        @Entity

        @Table(name = "survey_question")

        public class Survey_question implements Serializable {

            @Id
            @GeneratedValue
            @Column(name = "id")
            private Integer id;

            @Column(name = "freetext")
            private boolean freetext;

            @Column(name = "idx")
            private Integer idx;

            @Column(name = "mandatory")
            private boolean mandatory;

            @Column(name = "multiplechoice")
        private boolean multiplechoice;

        @Column(name = "title")
        private String title;

        @Column(name = "sheet_id")
        private Integer sheet_id;

        public Survey_question() {

        }

        public boolean getFreetext() {
            return freetext;
        }

        public void setFreetext(boolean freetext) {
            this.freetext = freetext;
        }

        public Integer getIdx() {
            return idx;
        }

        public void setIdx(Integer idx) {
            this.idx = idx;
        }

        public boolean getMandatory() {
            return mandatory;
        }

        public void setMandatory(boolean mandatory) {
            this.mandatory = mandatory;
        }

        public boolean getMultiplechoice() {
            return multiplechoice;
        }

        public void setMultiplechoice(boolean multiplechoice) {
            this.multiplechoice = multiplechoice;
        }

        public String getTitle() {
            return title;
        }

        public void setTitle(String title) {
            this.title = title;
        }

        public Integer getSheet_id() {
            return sheet_id;
        }

        public void setSheet_id(Integer sheet_id) {
            this.sheet_id = sheet_id;
        }

        public Integer getId() {
            return id;
        }

        public void setId(Integer id) {
            this.id = id;
        }

        @Override
        public String toString() {
            return "Question [freetext=" + freetext + ", idx=" + idx
                    + ", mandatory=" + mandatory + ", multiplechoice="
                    + multiplechoice + ", title=" + title + ", sheet_id="
                    + sheet_id + "]";
        }

    }

查询:

Query query = session.createQuery("from Survey_question");
    List<Survey_question> list = query.list();
    Iterator<Survey_question> iter = list.iterator();

    while (iter.hasNext()) {
        Survey_question q = iter.next();
        System.out.println(q.toString());
    }

}

我收到错误:

        SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
        SLF4J: Defaulting to no-operation (NOP) logger implementation
        SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
        Dez 19, 2013 5:52:40 PM org.hibernate.cfg.Environment <clinit>
    INFO: Hibernate 3.2.4.sp1
    Dez 19, 2013 5:52:40 PM org.hibernate.cfg.Environment <clinit>
    INFO: hibernate.properties not found
    Dez 19, 2013 5:52:40 PM org.hibernate.cfg.Environment buildBytecodeProvider
    INFO: Bytecode provider name : cglib
    Dez 19, 2013 5:52:40 PM org.hibernate.cfg.Environment <clinit>
    INFO: using JDK 1.4 java.sql.Timestamp handling
    Dez 19, 2013 5:52:41 PM org.hibernate.cfg.Configuration configure
    INFO: configuring from resource: /hibernate.cfg.xml
    Dez 19, 2013 5:52:41 PM org.hibernate.cfg.Configuration getConfigurationInputStream
    INFO: Configuration resource: /hibernate.cfg.xml
    Dez 19, 2013 5:52:41 PM org.hibernate.cfg.Configuration doConfigure
    INFO: Configured SessionFactory: null
    Dez 19, 2013 5:52:41 PM org.hibernate.connection.DriverManagerConnectionProvider configure
    INFO: Using Hibernate built-in connection pool (not for production use!)
    Dez 19, 2013 5:52:41 PM org.hibernate.connection.DriverManagerConnectionProvider configure
    INFO: Hibernate connection pool size: 20
    Dez 19, 2013 5:52:41 PM org.hibernate.connection.DriverManagerConnectionProvider configure
    INFO: autocommit mode: false
    Dez 19, 2013 5:52:41 PM org.hibernate.connection.DriverManagerConnectionProvider configure
    INFO: using driver: org.postgresql.Driver at URL: jdbc:postgresql://localhost:5432/ecm_politik_mt
    Dez 19, 2013 5:52:41 PM org.hibernate.connection.DriverManagerConnectionProvider configure
    INFO: connection properties: {user=ecm, password=****}
    Dez 19, 2013 5:52:41 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: RDBMS: PostgreSQL, version: 9.3.2
    Dez 19, 2013 5:52:41 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: JDBC driver: PostgreSQL Native Driver, version: PostgreSQL 9.3 JDBC4.1 (build 1100)
    Dez 19, 2013 5:52:41 PM org.hibernate.dialect.Dialect <init>
    INFO: Using dialect: org.hibernate.dialect.PostgreSQLDialect
    Dez 19, 2013 5:52:41 PM org.hibernate.transaction.TransactionFactoryFactory buildTransactionFactory
    INFO: Transaction strategy: org.hibernate.transaction.JDBCTransactionFactory
    Dez 19, 2013 5:52:41 PM org.hibernate.transaction.TransactionManagerLookupFactory getTransactionManagerLookup
    INFO: No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
    Dez 19, 2013 5:52:41 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Automatic flush during beforeCompletion(): disabled
    Dez 19, 2013 5:52:41 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Automatic session close at end of transaction: disabled
    Dez 19, 2013 5:52:41 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: JDBC batch size: 15
    Dez 19, 2013 5:52:41 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: JDBC batch updates for versioned data: disabled
    Dez 19, 2013 5:52:41 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Scrollable result sets: enabled
    Dez 19, 2013 5:52:41 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: JDBC3 getGeneratedKeys(): enabled
    Dez 19, 2013 5:52:41 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Connection release mode: auto
    Dez 19, 2013 5:52:41 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Default batch fetch size: 1
    Dez 19, 2013 5:52:41 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Generate SQL with comments: disabled
    Dez 19, 2013 5:52:41 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Order SQL updates by primary key: disabled
    Dez 19, 2013 5:52:41 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Order SQL inserts for batching: disabled
    Dez 19, 2013 5:52:41 PM org.hibernate.cfg.SettingsFactory createQueryTranslatorFactory
    INFO: Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
    Dez 19, 2013 5:52:41 PM org.hibernate.hql.ast.ASTQueryTranslatorFactory <init>
    INFO: Using ASTQueryTranslatorFactory
    Dez 19, 2013 5:52:41 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Query language substitutions: {}
    Dez 19, 2013 5:52:41 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: JPA-QL strict compliance: disabled
    Dez 19, 2013 5:52:41 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Second-level cache: enabled
    Dez 19, 2013 5:52:41 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Query cache: disabled
    Dez 19, 2013 5:52:41 PM org.hibernate.cfg.SettingsFactory createCacheProvider
    INFO: Cache provider: org.hibernate.cache.EhCacheProvider
    Dez 19, 2013 5:52:41 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Optimize cache for minimal puts: disabled
    Dez 19, 2013 5:52:41 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Structured second-level cache entries: disabled
    Dez 19, 2013 5:52:41 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Statistics: disabled
    Dez 19, 2013 5:52:41 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Deleted entity synthetic identifier rollback: disabled
    Dez 19, 2013 5:52:41 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Default entity-mode: pojo
    Dez 19, 2013 5:52:41 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Named query checking : enabled
    Dez 19, 2013 5:52:41 PM org.hibernate.impl.SessionFactoryImpl <init>
    INFO: building session factory
    Dez 19, 2013 5:52:42 PM org.hibernate.impl.SessionFactoryObjectFactory addInstance
    INFO: Not binding factory to JNDI, no JNDI name configured
    Dez 19, 2013 5:52:42 PM org.hibernate.util.JDBCExceptionReporter logExceptions
    WARNING: SQL Error: 0, SQLState: 42703
    Dez 19, 2013 5:52:42 PM org.hibernate.util.JDBCExceptionReporter logExceptions
    SEVERE: ERROR: Column survey_que0_.id does not exist
      Position: 8
    Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not execute query
        at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
        at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
        at org.hibernate.loader.Loader.doList(Loader.java:2223)
        at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
        at org.hibernate.loader.Loader.list(Loader.java:2099)
        at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
        at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
        at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
        at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
        at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
        at com.database.SurveyMain.showEntries(SurveyMain.java:23)
        at com.database.SurveyMain.main(SurveyMain.java:14)
    Caused by: org.postgresql.util.PSQLException: ERROR: Column survey_que0_.id does not exist
      Position: 8
        at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2161)
        at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1890)
        at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:560)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:417)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:302)
        at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
        at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
        at org.hibernate.loader.Loader.doQuery(Loader.java:674)
        at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
        at org.hibernate.loader.Loader.doList(Loader.java:2220)
        ... 9 more

我不明白为什么它在搜索“survey_que0_.id”。

0 个答案:

没有答案