现在的位置: 首页 > 综合 > 正文

SSH框架整合遇到的问题————-系列之1

2012年10月01日 ⁄ 综合 ⁄ 共 1295字 ⁄ 字号 评论关闭

1、could not find a getter for ... in class ... 异常的解决

could not find a getter for ... in class... 异常的解决

在spring+hibernate框架的java项目开发过程中,经常会遇到这样的错误: 

could not find a getter for ... in class... 

可能原因如下: 

1.真的没有写getter方法(发生几率:小) 

2.*.hmb.xml文件中的属性名和pojo不一致(*.hbm.xml和*.java没衔接好,不一致),字段属性没有正确配置,比如,*.hmb.xml中*.java的地址要明确(明确指出引用包的完整路径);映射错误;有多个主键时,对生成的联合主键配置错误;拼写错误(包括多空格)等(发生几率:大) 

3.方法写错/方法名写错,要按照javabean的书写规范写啊,要不然打死也找不到哪儿错了(发生几率:大)

2、返回JSON格式的数据时,Struts中返回后首字母变为了小写

3、在类级别上推荐使用立即检索策略,而在关联级别则推荐使用延迟检索策略。如果不考虑类级别采用何种检索策略,且想立即检索持久化对象时,可以使用Session实例的get()方法。

4、为了在HQL的查询语句中直接使用中文,我们必须在hibernate.cfg.xml配置文件中加入如上属性的定义:

<property name='hibernate.query.factory_class">

     org.hibernate.hql.classic.ClassicQueryTranslatorFactory

<property>

5、分清表的几种连接关系

6、解决中文乱码问题

   
<property name="connection.url">
		jdbc:mysql://localhost:3306/db_test12?useUnicode=true&characterEncoding=gb2312
	</property>

7、数据库中方言的配置

MySQL的方言为MySQLDialect,SQL Server的方言为SQLServerDialect

8、由于Hibernate依靠对象标识符(OID)来区别不同的持久化对象。而对象标识符(OID)则可以通过Hibernate内置的标识生成器来产生。

identity时OID由底层的数据库的自增主键机制产生。

native根据底层数据库对自动生成OID能力的支持,具体选择identity、sequence或hile生成器产生OID,常用于跨平台。

9、级联关系在Hibernate中具有非常重要的作用,它可以保证主控方所关联的被控方的操作的一致性,例如主控方进行save、update、或delete操作时被控方会进行同样的操作。

10、Session 的get()方法用于从数据库中加载指定的持久化对象到Session缓存中,如果指定的记录不存在,则返回null

Session的load()方法用于从数据库中加载指定的持久化对象到Session缓存中,如果指定的记录不存在,则抛出异常

11、

抱歉!评论已关闭.