2009-05-28 6 views
10

tengo una clase que tiene el siguiente aspecto:Hibernate - PropertyNotFoundException: No se pudo encontrar un comprador para

public class MyClass { 
    private String dPart1; 

    public String getDPart1() { 
     return dPart1; 
    } 

    public void setDPart1(String dPart1) { 
     this.dPart1 = dPart1; 
    } 
} 

Mi archivo de asignación de hibernación asigna la propiedad como sigue:

<property name="dPart1" not-null="true"/> 

consigo el el siguiente error:

org.hibernate.PropertyNotFoundException: Could not find a getter for dPart1 in class com.mypackage.MyClass 
     at org.hibernate.property.BasicPropertyAccessor.createGetter(BasicPropertyAccessor.java:282) 
     at org.hibernate.property.BasicPropertyAccessor.getGetter(BasicPropertyAccessor.java:275) 
     at org.hibernate.mapping.Property.getGetter(Property.java:272) 
     at org.hibernate.tuple.entity.PojoEntityTuplizer.buildPropertyGetter(PojoEntityTuplizer.java:247) 
     at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:125) 
     at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:55) 
     at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:56) 
     at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:302) 
     at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:434) 
     at 

Parece que a hibernate no le gusta mi capitalización. ¿Cómo debo solucionar esto?

Respuesta

16
<property name="DPart1" not-null="true"/> 

debería funcionar ...

+0

También estoy enfrentando el problema y las soluciones anteriores funcionan bien para mí. Ahora, lo que me gustaría saber es ¿es la especificación java para los métodos setter getter o es una implementación específica de jboss para hibernar? Gracias por su respuesta :) –

+0

¿Podría darnos una explicación acerca de su solución? – Marco

4

para una propiedad llamada "dPart1" una hibernación intentará un captador denominado "getDpart1" no "getDPart1" IIRC

+0

la capitalización es importante. es decir, – emdog4

+0

, ¿qué ocurre si se requiere getDPart1? –

3

no puedes acceder a él como un campo?

acceso = "campo"

0

tengo la solución

Por favor, haga dPart1 a dpart1 y cambiar el getter y setter de nuevo ..

Se está trabajando para mí ahora.

Recuerde cambiar el xml también.

0
private String rptausu; 

public String getRptausu() { 
    return rptausu; 
} 

public void setRptausu(String rpta) { 
    rptausu = rpta; 
} 

mapeo:

 <property name="prtausu" /> 

funciona correctamente

0

Por lo que he visto, Hibernate (al menos la versión 3.2.4) esperarán una propiedad como dpart tener un captador denominado getdPart : d permanece en minúscula. Mire también la respuesta de dfa: supongo que otras versiones podrían esperar getDpart.

0

El getter setter & debería tener este aspecto

getdPart1() 
setdPart1(....) 

Así es como los emisores se generan & captadores si se genera a través de un IDE como Eclipse.

0

Para una propiedad private Integer carId;

los setters y getters deben ser

getCarId() setCarId (entero Carid)

0

La convención de nomenclatura de la propiedad importa ejemplo, en mi caso, inicialmente utilice

private String newimsi, getNewImsi(); 

la anterior falló con la misma excepción

propertynotfoundexception

hasta que corregí a continuación antes de que funcionase

getNewimsi(); 
Cuestiones relacionadas