Hibernate學習hibernate是一項艱苦的工作!這個錯誤告訴我休眠:在類型org.hibernate.collection.PersistentSet上找不到屬性'xxx'Hibernate
javax.el.PropertyNotFoundException: Property 'usuarioPersonal' not found on type org.hibernate.collection.PersistentSet
當我試圖訪問屬性。
我有這樣一個關係:1個項目有N個用戶(只有1個用戶可以回覆)和N個用戶1個數據信息(姓名,姓氏,電子郵件)。
I'm MyEclipse的使用,這產生我的HBM和POJO,I'm查看此信息對我很確定。
項目DTO
public class Proyecto implements java.io.Serializable {
// Fields
private Integer idproyecto;
private String nombre;
private Integer creadoPor;
private Timestamp inicia;
private Timestamp finaliza;
private Timestamp fecha;
private Integer estatus;
private Set tareas = new HashSet(0);
private Set usrProyectos = new HashSet(0);
UsrProyectoDTO
public class UsrProyecto implements java.io.Serializable {
// Fields
private Integer idproyecto;
private UsuarioPersonal usuarioPersonal;
private Proyecto proyecto;
private Short estatus;
private Integer responsable;
UsuarioPersona DTO
public class UsuarioPersonal implements java.io.Serializable {
// Fields
private Integer idusuarioPersonales;
private CtgPuesto ctgPuesto;
private String nombre;
private String paterno;
private String materno;
private Timestamp fecha;
private Set usrProyectos = new HashSet(0);
Proyecto.hbm.xml
<class name="com.bsd.projects.capadatos.dto.Proyecto" table="proyecto" catalog="bsd_proyectos">
<id name="idproyecto" type="java.lang.Integer">
<column name="idproyecto" />
<generator class="identity" />
</id>
<property name="nombre" type="java.lang.String">
<column name="nombre" length="45" />
</property>
<property name="creadoPor" type="java.lang.Integer">
<column name="creado_por" />
</property>
<property name="inicia" type="java.sql.Timestamp">
<column name="inicia" length="0" />
</property>
<property name="finaliza" type="java.sql.Timestamp">
<column name="finaliza" length="0" />
</property>
<property name="fecha" type="java.sql.Timestamp">
<column name="fecha" length="0" />
</property>
<set name="tareas" inverse="true">
<key>
<column name="proyecto_id" not-null="true" />
</key>
<one-to-many class="com.bsd.projects.capadatos.dto.Tarea" />
</set>
<set name="usrProyectos" inverse="true">
<key>
<column name="proyecto_id" not-null="true" />
</key>
<one-to-many class="com.bsd.projects.capadatos.dto.UsrProyecto" />
</set>
<property name="estatus" type="java.lang.Integer">
<column name="estatus" />
</property>
</class>
UsrProyecto.hbm.xml
<class name="com.bsd.projects.capadatos.dto.UsrProyecto" table="usr_proyecto" catalog="bsd_proyectos">
<id name="idproyecto" type="java.lang.Integer">
<column name="idproyecto" />
<generator class="identity" />
</id>
<many-to-one name="usuarioPersonal" class="com.bsd.projects.capadatos.dto.UsuarioPersonal" fetch="select">
<column name="usaurio_personal_id" not-null="true" />
</many-to-one>
<many-to-one name="proyecto" class="com.bsd.projects.capadatos.dto.Proyecto" fetch="select">
<column name="proyecto_id" not-null="true" />
</many-to-one>
<property name="estatus" type="java.lang.Short">
<column name="estatus" />
</property>
<property name="responsable" type="java.lang.Integer">
<column name="responsable" />
</property>
</class>
UsuarioPersonal.hbm.xml
<class name="com.bsd.projects.capadatos.dto.UsuarioPersonal" table="usuario_personal" catalog="bsd_proyectos">
<id name="idusuarioPersonales" type="java.lang.Integer">
<column name="idusuario_personales" />
<generator class="identity" />
</id>
<many-to-one name="ctgPuesto" class="com.bsd.projects.capadatos.dto.CtgPuesto" fetch="select">
<column name="ctg_puesto_id" not-null="true" />
</many-to-one>
<property name="nombre" type="java.lang.String">
<column name="nombre" length="45" />
</property>
<property name="paterno" type="java.lang.String">
<column name="paterno" length="45" />
</property>
<property name="materno" type="java.lang.String">
<column name="materno" length="45" />
</property>
<property name="fecha" type="java.sql.Timestamp">
<column name="fecha" length="0" />
</property>
<set name="usrProyectos" inverse="true">
<key>
<column name="usaurio_personal_id" not-null="true" />
</key>
<one-to-many class="com.bsd.projects.capadatos.dto.UsrProyecto" />
</set>
</class>
ProyectoDAO
public Proyecto findById(java.lang.Integer id) {
log.debug("getting Proyecto instance with id: " + id);
try {
Proyecto instance = (Proyecto) getSession().get(
"com.bsd.projects.capadatos.dto.Proyecto", id);
return instance;
} catch (RuntimeException re) {
log.error("get failed", re);
throw re;
}
}
當我回到我的對象,查看
request.setAttribute("detalleProyecto",proyecto);
在detailproyect.jsp嘗試獲得「idusuarioPersonales」
<td>Id Personal:</td><td> <input type="text" value="${detalleProyecto.usrProyectos.usuarioPersonal.idusuarioPersonales}" />
爲什麼不容I'm訪問此屬性?如果地圖助理3類
我正在閱讀其他帖子,可能的問題是沒有getter和setter,但不是我的情況 – vljc2004