1

我的地址类:

public class Address  implements java.io.Serializable {
 private String addressId;
 private String customerId;

  public Address() {
}

public Address(String addressId) {
    this.addressId = addressId;
}
public Address(String addressId, String customerId) {
   this.addressId = addressId;
   this.customerId = customerId;

public String getAddressId() {
    return this.addressId;
}

public void setAddressId(String addressId) {
    this.addressId = addressId;
}
public String getCustomerId() {
    return this.customerId;
}

public void setCustomerId(String customerId) {
    this.customerId = customerId;
}

我的 hbm.xml 文件:

<class name="Address" table="Address">
    <id name="addressId" column="address_id" type="java.lang.String">
        <generator class="assigned" />
    </id>

    <property name="customerId" column="customer_id" type="java.lang.String" />

</class>

我收到以下错误

org.hibernate.PropertyNotFoundException: Could not find a getter for customerId in class Address
    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)
4

5 回答 5

4

Hibernate 的大小写可能有点棘手。

尝试将 CustomerId 作为属性名称,一切都应该没问题。getcustomerId如果您命名属性,Hibernate 需要一个方法customerID

于 2012-06-15T07:58:34.057 回答
2

如果您未在 hibernate.hbm.xml 文件中设置默认属性,但您为数据库中的列指定了默认值,则可能会发生这种情况。

于 2013-11-16T21:38:03.033 回答
0

如果您在 Eclipse 中有 Web 应用程序,请检查 Java 构建路径中是否有相同的输出文件夹和部署程序集中的源文件夹中是否有相同的源文件夹。

于 2014-01-27T12:35:25.627 回答
0

就我而言。我发现我的战争和罐子里有重复的课程。就像 Jigar Joshi 说的。为什么会这样?我将一些实体移动到打包成 jar 文件的其他项目。而且我通过战争重新部署了我的项目,Tomcat没有删除我删除的实体类,实体类仍在旧位置,并且与我的jar文件重复。

所以我删除了重复的类

于 2019-04-26T08:41:40.107 回答
0

有时您必须将别名放入转义引号中(如果您使用resulttransformer,它将通过属性方法或字段将别名值注入 Class 的实例):

session
    .createNativeQuery("SELECT something AS /"someThing/"")
    .setResultTransformer(Transformers.aliasToBean(MyDao.class))
    .getResultList();
于 2019-02-26T06:12:27.007 回答