各位大哥帮我看下问题
roleId,drId,是integer类型的,数据库里记录如果相应字段是空就查不出来,不是空就能查的出来,这是怎么回事啊
- Java code
<hibernate-mapping> <class name="com.fwzl.system.entity.User" table="t_sys_user"> <id name="userId" column="user_id" type="java.lang.Integer"> <generator class="sequence"> <param name="sequence">SEQ_SYS_USER</param> </generator> </id> <property name="roleId" type="java.lang.Integer" column="user_roleid" /> <property name="drId" type="java.lang.Integer" column="USER_DATAROLEID" /> <property name="loginName" type="java.lang.String" update="true" insert="true" column="user_loginname" /> <property name="userPassword" type="java.lang.String" update="true" insert="true" column="user_password" /> <property name="userName" type="java.lang.String" update="true" insert="true" column="user_name" /> </class></hibernate-mapping>
------解决方案--------------------
是不是用了关联查询?如果是关联查询请用left join on不要直接用等号去查询。
------解决方案--------------------
空就是什么都没有,既然什么都没有,查找出的结果也没有相关的信息
------解决方案--------------------
------解决方案--------------------
还有你是不是改过你的数据库对象了?
先说下我发现的错误
1.数据库对象属性应该是私有的private,同时带有公有的get和set,方法,而你的是public的,
2.配置文件里是java.lang.Integer类型,而你的类里是int,Integer是int的包装类,一个是类类型,一个是基本类型,Integer可以为null,你的对象里应该是private Integer roleId,这个时候可以是null的
而,而你定义成int形初始化的时候默认值就是0.所以说你的public int roleId,根本就没=null,而是被默认成0了。