各位大哥帮我看下问题
roleId,drId,是integer类型的,数据库里记录如果相应字段是空就查不出来,不是空就能查的出来,这是怎么回事啊
<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>
roleId,drId,是integer类型的,数据库里记录如果相应字段是空就查不出来,不是空就能查的出来,这是怎么回事啊
<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>
public class User implements java.io.Serializable
{
public int userId; // 用户ID
public int roleId; // 角色ID 这个是int类型不是包装类型null时候该报异常
public int drId;//数据角色ID ...........
}
至于为什么查不出来,你还是把你的查询语句贴出来吧,别让大家用猜的
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了。