Witam
Mam problem z hibernatem. Przy próbie zapisania obiektów zawierających asocjacje many-to-many wyrzuca mi wyjątek:

org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of application.model.CustomerImpl.id
        at org.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:171)
        at org.hibernate.tuple.entity.AbstractEntityTuplizer.getIdentifier(AbstractEntityTuplizer.java:183)
        at org.hibernate.persister.entity.AbstractEntityPersister.getIdentifier(AbstractEntityPersister.java:3596)
        at org.hibernate.persister.entity.AbstractEntityPersister.isTransient(AbstractEntityPersister.java:3312)
        at org.hibernate.engine.ForeignKeys.isTransient(ForeignKeys.java:181)
        at org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:218)
        at org.hibernate.type.EntityType.getIdentifier(EntityType.java:397)
        at org.hibernate.type.ManyToOneType.nullSafeSet(ManyToOneType.java:78)
        at org.hibernate.persister.collection.AbstractCollectionPersister.writeElement(AbstractCollectionPersister.java:755)
        at org.hibernate.persister.collection.AbstractCollectionPersister.recreate(AbstractCollectionPersister.java:1143)

Czytałem wiele o tych błędach na forach hibernate'a ale nikt nie odpowiedział jak się tego pozbyć.
Problem polega na tym, że hibernate chyba odwołuje się do kolekcji "set" (wywołuje metodę getId()) zamiast do obiektu, który jest w tej kolekcji.

Plik z mapowaniem oferty:

 <class name="application.model.OfferImpl" table="offers">
        <id name="id" column="offer_id">
            <generator class="native"/>
        </id>
        <set name="customers" table="customers_offers">
            <key column="offer_id" />
            <many-to-many column="customer_id" class="application.model.CustomerImpl"/>
        </set>
    </class>

Plik z mapowaniem usera:

    <class name="application.model.CustomerImpl" table="customers" >
        <id name="id" column="customer_id" type="long">
            <generator class="identity"/>
        </id>
        <property name="name"/>
        <property name="surname"/>
        <set name="offers" table="customers_offers" access="field">
            <key column="customer_id"/>
            <many-to-many class="application.model.OfferImpl" column="offer_id"/>
        </set>
    </class>

Pliki implementacji poszczególnych klas mają wszystkie settery i gettery poprawne (działają poprawnie bez asocjacji).

Dziękuje za pomoc w tej sprawie.