В первый раз пишу маппитг для связи многие-ко-многим и возникли трудности.
Есть 3 таблицы:
1.
2.
3.
CREATE TABLE users(
id int4 NOT NULL DEFAULT nextval('users_seq'::regclass),
nic varchar( 50 ),
CONSTRAINT user_id PRIMARY KEY (id))
1.
2.
3.
4.
5.
6.
CREATE TABLE user_service(
users_id int4 NOT NULL ,
services_id int4 NOT NULL ,
CONSTRAINT user_servise_pk PRIMARY KEY (users_id, services_id),
CONSTRAINT user_service_service_id FOREIGN KEY (services_id) REFERENCES services (id) ON UPDATE NO ACTION ON DELETE CASCADE,
CONSTRAINT user_service_user_id FOREIGN KEY (users_id) REFERENCES users (id) ON UPDATE NO ACTION ON DELETE CASCADE
)
1.
2.
3.
4.
5.
CREATE TABLE services(
id int4 NOT NULL DEFAULT nextval('services_seq'::regclass),
name varchar( 20 ) NOT NULL ,
"key" varchar( 2 ) NOT NULL ,
CONSTRAINT services_id PRIMARY KEY (id),
)
В маппинге для users пишу:
1.
2.
3.
<set name="services" table="user_service">
<key column="users_id"/>
<many-to-many column="services_id" class ="Services"/>
</set>
При попытке загрузить пользователя (н-р, методом session.get) появляются вылезают исключения:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
18907 [main] ERROR org.hibernate.util.JDBCExceptionReporter - ???»???????? Integer list
19047 [main] INFO org.hibernate.event.def.DefaultLoadEventListener - Error performing load command
org.hibernate.exception.DataException: could not initialize a collection: [com.skiber.ucb.beans.UcbUser.services# 2 ]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java: 75 )
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java: 43 )
at org.hibernate.loader.Loader.loadCollection(Loader.java: 1926 )
at org.hibernate.loader.collection.CollectionLoader.initialize(CollectionLoader.java: 71 )
at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java: 520 )
at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java: 60 )
at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java: 1627 )
at org.hibernate.collection.AbstractPersistentCollection.forceInitialization(AbstractPersistentCollection.java: 454 )
at org.hibernate.engine.StatefulPersistenceContext.initializeNonLazyCollections(StatefulPersistenceContext.java: 827 )
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java: 229 )
at org.hibernate.loader.Loader.loadEntity(Loader.java: 1785 )
at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java: 93 )
at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java: 81 )
at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java: 2730 )
at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java: 365 )
at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java: 346 )
at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java: 123 )
at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java: 161 )
at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java: 87 )
at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java: 869 )
at org.hibernate.impl.SessionImpl.get(SessionImpl.java: 806 )
at org.hibernate.impl.SessionImpl.get(SessionImpl.java: 799 )
Caused by: org.postgresql.util.PSQLException: ???»???????? Integer list
at org.postgresql.jdbc1.AbstractJdbc1ResultSet.toInt(AbstractJdbc1ResultSet.java: 862 )
at org.postgresql.jdbc1.AbstractJdbc1ResultSet.getInt(AbstractJdbc1ResultSet.java: 287 )
at org.postgresql.jdbc1.AbstractJdbc1ResultSet.getInt(AbstractJdbc1ResultSet.java: 501 )
at org.hibernate.type.IntegerType.get(IntegerType.java: 28 )
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java: 113 )
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java: 102 )
at org.hibernate.type.AbstractType.hydrate(AbstractType.java: 81 )
at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java: 1899 )
at org.hibernate.loader.Loader.loadFromResultSet(Loader.java: 1372 )
at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java: 1300 )
at org.hibernate.loader.Loader.getRow(Loader.java: 1197 )
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java: 569 )
at org.hibernate.loader.Loader.doQuery(Loader.java: 689 )
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java: 224 )
at org.hibernate.loader.Loader.loadCollection(Loader.java: 1919 )
... 61 more
Подскажите, в чём ошибка