工作以来某人经历的一些hibernate问题集锦--更新中

工作以来本人经历的一些hibernate问题集锦--更新中

1.org. hibernate.LazyInitializationException: could not initialize proxy - no Session
看了网上一片文章` 解决方法是lazy设置为false 终于知道问题的根源,将lazy设置为false run了一次XDoclet,生成了hbm配置 文件,但问题仍未解决!访问时还是报这个错误

最后看看配置,lazy选项没了``才发觉XDoclet是不会帮你生成lazy选项的`
又或者是我没加上
最后在hbm配置文件中修改lazy="false"问题得到解决
  1. <class
  2. name="cn.jjo.type.ejb.SmallType"
  3. table="PRO_SMALLTYPE"
  4. dynamic-update="true"
  5. dynamic-insert="true"
  6. lazy="false"
  7. >
  8. 2.换数据库时经常犯得错,没换数据库方言
  9. 下面是spring中配置HibernatesessionFactory的例子
  10. <beanid="sessionFactory"
  11. class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  12. <propertyname="dataSource"ref="dataSource"/>
  13. <propertyname="hibernateProperties">
  14. <props>
  15. <!--换数据库时记得修改下面这段方言喔-->
  16. <propkey="hibernate.dialect">
  17. org.hibernate.dialect.MySQLDialect
  18. </prop>
  19. <propkey="hibernate.show_sql">false</prop>
  20. <propkey="hibernate.hbm2ddl.auto">update</prop>
  21. <propkey="hibernate.jdbc.batch_size">20</prop>
  22. <propkey="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</prop>
  23. <!--
  24. <propkey="hibernate.cache.provider_class">
  25. org.hibernate.cache.EhCacheProvider
  26. </prop>
  27. -->
  28. <propkey="hibernate.cache.use_query_cache">true</prop>
  29. </props>
  30. </property>
  31. <propertyname="mappingResources">
  32. <list>
  33. <value>cn/jjo/product/ejb/Product.hbm.xml</value>
  34. <value>cn/jjo/user/ejb/Admin.hbm.xml</value>
  35. <value>cn/jjo/product/ejb/Information.hbm.xml</value>
  36. <value>cn/jjo/product/ejb/BigType.hbm.xml</value>
  37. <value>cn/jjo/product/ejb/ExcelInfo.hbm.xml</value>
  38. </list>
  39. </property>
  40. </bean>

以下是各数据库对应得方言

RDBMS 方言
DB2 org.hibernate.dialect.DB2Dialect
DB2 org.hibernate.dialect.DB2400Dialect
AS/400 org.hibernate.dialect.DB2390Dialect
DB2 OS390 org.hibernate.dialect.PostgreSQLDialect
PostgreSQL org.hibernate.dialect.PostgreSQLDialect
MySQL org.hibernate.dialect.MySQLDialect
MySQL with InnoDB org.hibernate.dialect.MySQLInnoDBDialect
MySQL with MyISAM org.hibernate.dialect.MySQLMyISAMDialect
Oracle (any version) org.hibernate.dialect.OracleDialect
Oracle 9i/10g org.hibernate.dialect.Oracle9Dialect
Sybase org.hibernate.dialect.SybaseDialect
Sybase Anywhere org.hibernate.dialect.SybaseAnywhereDialect
Microsoft SQL Server org.hibernate.dialect.SQLServerDialect
SAP DB org.hibernate.dialect.SAPDBDialect
Informix org.hibernate.dialect.InformixDialect
HypersonicSQL org.hibernate.dialect.HSQLDialect
Ingres org.hibernate.dialect.IngresDialect
Progress org.hibernate.dialect.ProgressDialect
Mckoi SQL org.hibernate.dialect.MckoiDialect
Interbase org.hibernate.dialect.InterbaseDialect
Pointbase org.hibernate.dialect.PointbaseDialect
FrontBase org.hibernate.dialect.FrontbaseDialect
Firebird org.hibernate.dialect.FirebirdDialect
还可以配置.properties文件这里就不列出了。也是一个“#”号问题。。。

其实不人不怎么懂方言得作用,上课李 老师说了也好像忘记了цк ,应该是英语跟中文的差别吧。。。

3.初学者常见问题
Caused by: org.dom4j.DocumentException: Invalid byte 2 of 2-byte UTF-8 sequence. Nested exception: Invalid byte 2 of 2-byte UTF-8 sequence.
如果出现这行错误说明你的xml配置文件有不规范的字符,检查下。

net.sf.hibernate.MappingException: Error reading resource: hibernate/Hello_Bean.hbm.xml
如果出现这行错误说明你的hibernate的XML配置文件有错\r

net.sf.hibernate.MappingException: Resource: hibernate/Hello_Bean.hbm.xml not found
如果出现这行错误说明hibernate的XML配置文件没有找到,你应该把XML文件放在与你的类文件同个 目录下,本文中是放
在hibernate\classes\hibernate\目录下,也就是跟Hello_Bean.class类文件一起。

net.sf.hibernate.PropertyNotFoundException: Could not find a setter for property name in class hibernate.Hello_Bean
如果出现这行错误说明你的xml文件里设置的 字段名name的值与Hello_Bean. java类里的getXXX或setXXX方法不一致。

net.sf.hibernate.HibernateException: JDBC Driver class not found: org.gjt.mm. mysql.Driver
如果出现这行错误说明你的MYSQL驱动没有加进LIB库里或者不在CLASSPATH里。
PS:没有错误是不正常,错误是我们的老师啊!!

你可能感兴趣的:(工作,bean,Hibernate,mysql,Sybase)