有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Hibernate PropertyNotFoundException:找不到的获取程序

我有一个如下所示的类:

public class MyClass {
    private String dPart1;

    public String getDPart1() {
        return dPart1;
    }

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

我的hibernate映射文件映射属性,如下所示:

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

我得到以下错误:

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 

hibernate似乎不喜欢我的大写字母。我该如何解决这个问题


共 (6) 个答案

  1. # 1 楼答案

    据我所见,Hibernate(至少版本3.2.4)希望像dPart这样的属性有一个名为getdPart:d的getter,并保持小写。再看看dfa的答案——我猜其他版本可能会使用getDpart

  2. # 2 楼答案

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

    映射:

            <property name="prtausu" />
    

    工作正常

  3. # 3 楼答案

    你就不能像访问一个字段一样访问它吗

    access=“field”

  4. # 4 楼答案

    对于名为“dPart1”的属性,hibernate将尝试名为“getDpart1”而不是“getDpart1”的getter IIRC

  5. # 5 楼答案

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

    应该有用

  6. # 6 楼答案

    我找到了解决办法

    请将dPart1改为dPart1,然后再次更改getter和setter

    它现在正在为我工作

    记住也要更改xml