Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Hibernate field [xxx] not found on package.Class


Автор: Alexis 2.1.2007, 19:49
Имеется класс User:
Код

public class User implements Serializable {   
    private Long id;    
   
    private String name;    
    private String firstName;
    private String lastName; 
    private String password;
    private String email;
    private String state;
    private String city;
    private String streetAddress;
    private String postalCode;
    private String phoneNumber;
    
    private Country country;    
    private UserType userType;

    // getters and setters
}


Маппинг (User.hbm.xml):
Код

<hibernate-mapping package="com.eshop.bo">
    <class name="User" table="users">
        <id name="id" column="users_id">
            <generator class="native"/>
        </id>
        
        <property name="name" column="name" />
        <property name="firstName" column="firstname" />
        <property name="lastName" column="lastname" />
        <property name="password" column="password" />
        <property name="email" column="email" />        
        <property name="state" column="state" />
        <property name="city" column="city" />
        <property name="streetAddress" column="street_address" />
        <property name="postalCode" column="postal_code" />
        <property name="phoneNumber" column="phone_number" />

        <many-to-one name="country" column="country_id" class="Country" />
        <many-to-one name="userType" column="user_type_id" class="UserType" />
    </class>
</hibernate-mapping>


При запуске Hibernate выдает исключение:
<...>
Caused by: org.hibernate.PropertyNotFoundException: field [state] not found on com.eshop.bo.User
    at org.hibernate.property.DirectPropertyAccessor.getField(DirectPropertyAccessor.java:112)
    at org.hibernate.property.DirectPropertyAccessor.getField(DirectPropertyAccessor.java:104)
    at org.hibernate.property.DirectPropertyAccessor.getGetter(DirectPropertyAccessor.java:127)
    at org.hibernate.util.ReflectHelper.getter(ReflectHelper.java:83)
    at org.hibernate.util.ReflectHelper.reflectedPropertyClass(ReflectHelper.java:71)
    at org.hibernate.mapping.SimpleValue.setTypeUsingReflection(SimpleValue.java:276)
    at org.hibernate.cfg.HbmBinder.createProperty(HbmBinder.java:2164)
    at org.hibernate.cfg.HbmBinder.createClassProperties(HbmBinder.java:2141)
    at org.hibernate.cfg.HbmBinder.createClassProperties(HbmBinder.java:2031)
    at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:359)
    at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:273)
    at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:144)
    at org.hibernate.cfg.Configuration.add(Configuration.java:424)
    at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:465)
    at org.hibernate.cfg.Configuration.addResource(Configuration.java:520)
    ... 35 more
<...>

Несмотря на то, что геттер у state имеется. Если выставить для state тип string:
Код

<property name="state" type="string" column="state" />

то начинает ругаться на следующее поле на city, что тоже лечится выставлением типа string. Причем, что интересно до штата все проходит нормально, а потом начинает спотыкаться, требуя выставления типа.
Обновил hibernate до самой последней версии (3.2.1, до этого была 3.2.0), вылетает тоже исключение, лечится так же. В принципе не тяжело выставлять тип для всех полей, но хотелось бы знать из-за чего возникают подобные проблемы? Это баг или фича?

Автор: tux 3.1.2007, 09:02
А как выглядит таблица users?

Автор: Alexis 3.1.2007, 11:24
Цитата(tux @  3.1.2007,  09:02 Найти цитируемый пост)
А как выглядит таблица users? 

До соединения с базой hibernate вообще не доходит (проверял испортив настройки подключения), да и в настройках я указал:
Код

<property name="hbm2ddl.auto">create</property> 

так что пускай сам создает как ему нужно.

Вот полный лог приложения:

Автор: Alexis 3.1.2007, 18:30
Извиняюсь, что ввел всех в заблуждение. Просто деплоились старые версии конфигов. Ну нафиг этот эклипсовский деплой, лучше буду все собирать и деплоить антом, все же таки удобнее и понятнее, когда все сам прописал руками, да и подобные ошибки возникать не будут.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)