component class not found:Address
报这个错误
麻烦给看一下、实在是找不出来问题
我使用的是组件,就是在一个类中包含另一个类的形式<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
     <class name="com.cn.xxx.Location" table="location">
       <id name="id">
         <generator class="native"/>
       </id>
       <property name="name" type="string"/>
       <component name="address" class="Address" >
            <property name="streetAddress" column="street_address" type="string"/>
            <property name="city" type="string"/>
            <property name="state" type="string"/>
            <property name="zipCode" column="zip_code" type="string"/>
        </component>
     </class>
</hibernate-mapping>package com.cn.xxx;public class Location { private Long id;
private String name;
private Address address = new Address();
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package com.cn.xxx;public class Address { private String streetAddress;
private String city;
private String state;
private String zipCode;

public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getStreetAddress() {
return streetAddress;
}
public void setStreetAddress(String streetAddress) {
this.streetAddress = streetAddress;
}
public String getZipCode() {
return zipCode;
}
public void setZipCode(String zipCode) {
this.zipCode = zipCode;
}


}

解决方案 »

  1.   

    在Bean中你已经定义
    private Address address ;
    那么配置文件中指定name="address"就可以了
      

  2.   

    <component name="address" class="Address" > 这一段,你把class的值改为它的包名加类名,如:com.hi.demo.persist.eneity.Address因为它报的错是找不到那个 Address 类!
      

  3.   

    如果不用class属性的话,就是这个错,试过的org.hibernate.TransientObjectException: com.cn.xxx.Location
      

  4.   

    <component name="address" class="Address" > 你把这一段的class值改为它的包名加类名,如:com.hh.demo.peistst.entity.Address它报的错是找不到这个类!
      

  5.   

    LZ的component映射private Address address = new Address(); 
    没必要new吧  
    private Address address ;就可以了吧配置文件中
       <component name="address" class="Address" > 
    改成
     <component name="address">
      

  6.   

    恩,如楼上所说  指定class的全路径.
      

  7.   

     <component name="address" class="com.cn.xxx.Address" > 
      

  8.   

    不是阿,不new的话,它怎么去调用get方法呢?况且不new 的话就会报空指针异常
      

  9.   

    感谢大家的帮助和提示,问题已经解决
    原因
    这个是一个一对多的表,我在多的那边少了一个级联属性就是 cascade="save-update"
    也就是说,每次在多的这边保存新的信息时,也同时保存对应的一的那边