2013-10-17 32 views
1

我有2个类,Person类与Address类具有ManyToOne关系。当我试图找人时,地址对象里面有空元素,为什么会发生这种情况?懒惰的配置不工作?我可以使用地址级联保存人员对象。休眠获取所有抛出Nullpointerexcepetion ina对象关系

这里是我的代码:

Person类:

public class Person implements java.io.Serializable { 

    private int idPerson; 
    private String name; 
    private String surname; 
    private String dni; 
    private Date dateBirth; 
    private String cellPhone; 
    private String landPhone; 
    private String email; 
    private String discr; 
    private Address address ; 

    public Person() { 
    } 
    // ¡gett 

ERS和setter } 我的地址类:

public class Address implements java.io.Serializable { 

private int idAddress; 
private City city; 
private String street; 
private String number; 
private Integer apartament; 
private int level; 

    public Address() { 
    } 
//getters an setters 
} 

我的两个映射文件:

<hibernate-mapping> 
    <class name="com.efix.model.enterprise.Address" table="address" schema="public"> 
     <id name="idAddress" type="int"> 
      <column name="id_address" /> 
      <generator class="assigned" /> 
     </id> 
     <many-to-one name="city" class="com.efix.model.enterprise.City" cascade="all" lazy="false"> 
      <column name="id_city" not-null="true" /> 
     </many-to-one> 
     <property name="street" type="string"> 
      <column name="street" length="60" not-null="true" /> 
     </property> 
     <property name="number" type="string"> 
      <column name="number" length="6" /> 
     </property> 
     <property name="apartament" type="java.lang.Integer"> 
      <column name="apartament" /> 
     </property> 
     <property name="level" type="int"> 
      <column name="level" not-null="true" /> 
     </property> 
    </class> 
</hibernate-mapping> 

以上是地址马平,这是我的令人映射:

 <!-- Sublcase cliente --> 
     <subclass name="com.efix.model.enterprise.Client" discriminator-value="Client"> 
      <property name="notes" type="string"> 
       <column name="notes" /> 
      </property> 
     </subclass> 

    </class> 
</hibernate-mapping> 

我NullPointerException异常抛出的代码块:

ClientServiceImpl serviceImpl = new ClientServiceImpl(); 
for (Client cli : serviceImpl.findAll()) { 
    System.out.println(cli.getAddress().getNumber()); 

感谢先进!

+0

请发布错误的整个堆栈跟踪并突出显示解释错误的代码行。而且什么是'ClientServiceImpl'? – Paolo

+0

这是一个例外:2013年10月18日上午9:45:53 com.sun.faces.context.PartialViewContextImpl $ PhaseAwareVisitCallback访问 SEVERE:javax.el.E​​LException:/enterprises/persons/client.xhtml @ 236,141 value =“ #{clientController.selectedClient.address.number}“:读取类型为com.efix.model.enterprise.Address的$号错误_ $$ _ javassist_0 ClientServiceImpl是调用DAO以将数据保存在D B。我调试该项目,我有地址对象null的引用。 – user1977204

+0

愚蠢的问题,但我需要确定...这个人有一个有效的(非空)地址(我的意思是数据库)? – Paolo

回答

0

感谢您的回复!我的错误是在一个表达式中。我是参考一个不存在的财产!

+0

很高兴知道你解决了你的问题。再见! – Paolo