09:39:01,664 ERROR Dispatcher:38 - Exception occurred during processing request: could not execute query
org.hibernate.exception.SQLGrammarException: could not execute query
出现这个问题 就是@joincolumn 里的name 出了问题 一定要和下面的属性名 对上, 不要写成那边关联类的主键的字段名
我找这个问题 找了一天一夜 ,在公司睡了一晚上 家都没回 太恶心了~
一定要记住这个教训
遇到这种问题 先在 sessionfactory 里把hibernate_show_sql 打开
<!-- sessionFactory工厂 配置-->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"><!-- org.springframework.orm.hibernate3.LocalSessionFactoryBean -->
<property name="dataSource" ref="dataSource"/>
<property name="packagesToScan" value="com.org.tjksale.*.entity" />
<property name="useTransactionAwareDataSource" value="true" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<!-- 打开这个-->
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
</bean>
然后找字段 Unknown column 'basicperso0_.id' in 'field list'
这里的basicperso0_. 是hibernate 自动 设置的一个 table名 的 as 类名.
我找这个恶心的 basicperso0_. 找了半天 我确定我的代码中没有个字段 无论是数据库还是 实体类里
hibernate 我日你大爷!!!