Así que tengo una tabla que he definido como una entidad en hibernación como esto:Hibernate lanza HibernateQueryException: no se pudo resolver la propiedad
@Entity
@Table(name = "sec_Preference")
public class Preference {
private long id;
@Column(name = "PreferenceId", nullable = false, insertable = true, updatable = true, length = 19, precision = 0)
@GeneratedValue(strategy = GenerationType.AUTO)
@Id
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
private long systemuserid;
@Column(name = "SystemUserId", nullable = true, insertable = true, updatable = true, length = 19, precision = 0)
@Basic
public long getSystemUserId() {
return systemuserid;
}
public void setSystemUserId(long systemuserid) {
this.systemuserid = systemuserid;
}
private long dbgroupid;
@Column(name = "DBGroupId", nullable = true, insertable = true, updatable = true, length = 19, precision = 0)
@Basic
public long getDBGroupId() {
return dbgroupid;
}
public void setDBGroupId(long dbgroupid) {
this.dbgroupid = dbgroupid;
}
private long externalgroupid;
@Column(name = "ExternalGroupId", nullable = true, insertable = true, updatable = true, length = 19, precision = 0)
@Basic
public long getExternalGroupId() {
return externalgroupid;
}
public void setExternalGroupId(long externalgroupid) {
this.externalgroupid = externalgroupid;
}
private long securityroleid;
@Column(name = "SecurityRoleId", nullable = true, insertable = true, updatable = true, length = 19, precision = 0)
@Basic
public long getSecurityRoleId() {
return securityroleid;
}
public void setSecurityRoleId(long securityroleid) {
this.securityroleid = securityroleid;
}
public void setEnum(com.vitalimages.common.server.security.Preference pref) {
this.preferencekey = pref.name();
}
private String preferencekey;
@Column(name = "PreferenceKey", nullable = false, insertable = true, updatable = true, length = 255, precision = 0)
@Basic
public String getKey() {
return preferencekey;
}
public void setKey(String key) {
this.preferencekey = key;
}
private String preferencevalue;
@Column(name = "PreferenceValue", nullable = true, insertable = true, updatable = true, length = 255, precision = 0)
@Basic
public String getValue() {
return preferencevalue;
}
public void setValue(String value) {
this.preferencevalue = value;
}
}
Cuando trataba de escribir una consulta simple en contra de esta tabla:
public Collection<Preference> getPreferencesForDBGroup(long dbgroupId) {
final DetachedCriteria criteria = DetachedCriteria.forClass(Preference.class)
.add(Restrictions.eq("dbgroupid", dbgroupId))
.setResultTransformer(DistinctRootEntityResultTransformer.INSTANCE);
return getHibernateTemplate().findByCriteria(criteria);
}
me dieron el siguiente error:
org.springframework.orm.hibernate3.HibernateQueryException: could not resolve property: dbgroupid of: com.common.server.domain.sec.Preference; nested exception is org.hibernate.QueryException: could not resolve property: dbgroupid of: com.common.server.domain.sec.Preference
¿Por qué no se puede hibernar averiguar lo que dbgroupid s en mi clase?
@Ralph: sí, no está prohibido. Pero tomé su nombre de campo como punto de partida, por lo tanto, sugerí un cambio de getter. Podría haber sido al revés. Pero tienes razón en que las letras mayúsculas al principio son complicadas. – Bozho
Tiene usted razón - es la señorita investigar su anser - así que elimino mi comentario ya – Ralph
Tuve un problema similar cuando estaba usando mayúsculas y no encontraba el getter correcto: '.add (Restrictions.eq (" DBGROUPID ", dbgroupId)) ' –