У меня большая проблема при попытке сопоставить сущность с другой, у которой есть Composite-PK ...
Вот что я пытаюсь достичь: 1 пользователь может иметь много задач, и каждая задача содержит много модулей, и это действие
| Пользователь | ( ИД пользователя , Имя)
| UserRight | ( ИД пользователя , TaskId )
| Задача | ( TaskId , ModuleId , ActionId )
| Действие | ( ActionId , ActionName)
| Модуль | ( ModuleId , ModuleName)
в моем User.hbm.xml
<set name="tasklist" table="UserRight" cascade="all">
<key column="user_id" />
<many-to-many column="task_id" unique="true"class="kodi.model.UserRights.Task" />
</set>
и я получаю эту ошибку
SEVERE: Initial SessionFactory creation failed.org.hibernate.MappingException: Foreign key (FK8AF2ACF15756F47C:UserRight [task_id])) must have same number of columns as the referenced primary key (task [task_id,submodule_id,action_id])
WARNING: StandardWrapperValve[default]: PWC1406: Servlet.service() for servlet default threw exception
java.lang.ExceptionInInitializerError
at kodi.gen.util.HibernateUtil.buildSessionFactory(HibernateUtil.java:23)
at kodi.gen.util.HibernateUtil.<clinit>(HibernateUtil.java:14)
at kodi.view.LoginAction.<init>(LoginAction.java:22)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
Я знаю, что проблема в becoz, я пытаюсь использовать только 1 атрибут для сопоставления с сетом с 3, но я действительно не знаю, как решить эту проблему.
Может кто-нибудь помочь, пожалуйста?