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 我日你大爷!!!