hibernate返回null对象

时间:2012-12-27 21:25:32

标签: java eclipse hibernate

我是使用hibernate的新手,出于某种原因,当我使用以下代码时,我得到一个空对象列表:

public static void main(String args[])
{
    Session s = HibernateUtil.currentSession();
    ArrayList lst = (ArrayList) s.createQuery("from Users").list();
    for(Object obj : lst){
        Users user = (Users)obj;
        System.Out.println(user.getUserid()); // null
    }
}

我的hibernate映射xml如下所示:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated Dec 27, 2012 9:48:45 PM by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
<class name="us.Users" table="USERS">
    <id name="userid" type="int">
        <column name="USERID" precision="9" scale="0" />
        <generator class="assigned" />
    </id>
    <property name="username" type="string">
        <column name="USERNAME" length="200"  />
    </property>
    <property name="password" type="string">
        <column name="PASSWORD" length="200" />
    </property>
    <property name="firstName" type="string">
        <column name="FIRST_NAME" length="200" />
    </property>
    <property name="lastName" type="string">
        <column name="LAST_NAME" length="200" />
    </property>
    <property name="dateOfBirth" type="timestamp">  // my guess was that the problem             appears with the timestamp property
        <column name="DATE_OF_BIRTH" />
    </property>
    <property name="registrationDate" type="timestamp">
        <column name="REGISTRATION_DATE" />
    </property>
    <one-to-one name="administrators" class="assignment2.Administrators"></one-to-one>
    <set name="histories" table="HISTORY" inverse="true" lazy="false" fetch="select">
        <key>
            <column name="USERID" precision="9" scale="0" not-null="true" />
        </key>
        <one-to-many class="us.History" />
    </set>
    <set name="loginlogs" table="LOGINLOG" inverse="true" lazy="false" fetch="select">
        <key>
            <column name="USERID" precision="9" scale="0" not-null="true" />
        </key>
        <one-to-many class="us.Loginlog" />
    </set>
</class>

这是我的hibernate.cfg.xml:

 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE hibernate-configuration PUBLIC
  "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
 <hibernate-configuration>
  <session-factory>
        <property name="hibernate.bytecode.use_reflection_optimizer">false</property>
    <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
    <property name="hibernate.connection.password">abcd</property>
    <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:xe</property>
    <property name="hibernate.connection.username">SYSTEM</property>
    <property name="hibernate.default_schema">SYSTEM</property>
    <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
    <property name="hibernate.search.autoregister_listeners">false</property>
    <mapping resource="assignment2/History.hbm.xml" />
    <mapping resource="assignment2/Similarity.hbm.xml" />
    <mapping resource="assignment2/Loginlog.hbm.xml" />
    <mapping resource="assignment2/Users.hbm.xml" />
    <mapping resource="assignment2/Administrators.hbm.xml" />
    <mapping resource="assignment2/Mediaitems.hbm.xml" />
</session-factory>

和用户类:

/**
 * Users generated by hbm2java
 */
public class Users implements java.io.Serializable {

private int userid;
private String username;
private String password;
private String firstName;
private String lastName;
private Date dateOfBirth;
private Date registrationDate;
private Administrators administrators;
private Set<History> histories = new HashSet<History>(0);
private Set<Loginlog> loginlogs = new HashSet<Loginlog>(0);

public Users() {
}

public Users(int userid) {
    this.userid = userid;
}

public Users(int userid, String username, String password,
        String firstName, String lastName, Serializable dateOfBirth,
        Serializable registrationDate, Administrators administrators,
        Set<History> histories, Set<Loginlog> loginlogs) {
    this.userid = userid;
    this.username = username;
    this.password = password;
    this.firstName = firstName;
    this.lastName = lastName;
    this.dateOfBirth = dateOfBirth;
    this.registrationDate = registrationDate;
    this.administrators = administrators;
    this.histories = histories;
    this.loginlogs = loginlogs;
}

public int getUserid() {
    return this.userid;
}

public void setUserid(int userid) {
    this.userid = userid;
}

public String getUsername() {
    return this.username;
}

public void setUsername(String username) {
    this.username = username;
}

public String getPassword() {
    return this.password;
}

public void setPassword(String password) {
    this.password = password;
}

public String getFirstName() {
    return this.firstName;
}

public void setFirstName(String firstName) {
    this.firstName = firstName;
}

public String getLastName() {
    return this.lastName;
}

public void setLastName(String lastName) {
    this.lastName = lastName;
}

public Date getDateOfBirth() {
    return this.dateOfBirth;
}

public void setDateOfBirth(Date dateOfBirth) {
    this.dateOfBirth = dateOfBirth;
}

public Date getRegistrationDate() {
    return this.registrationDate;
}

public void setRegistrationDate(Date registrationDate) {
    this.registrationDate = registrationDate;
}

public Administrators getAdministrators() {
    return this.administrators;
}

public void setAdministrators(Administrators administrators) {
    this.administrators = administrators;
}

public Set<History> getHistories() {
    return this.histories;
}

public void setHistories(Set<History> histories) {
    this.histories = histories;
}

public Set<Loginlog> getLoginlogs() {
    return this.loginlogs;
}

public void setLoginlogs(Set<Loginlog> loginlogs) {
    this.loginlogs = loginlogs;
}

}

非常感谢

0 个答案:

没有答案