Проблема гибернации: внешний ключ должен иметь то же количество столбцов, что и указанный первичный ключ

Цель: я хочу, чтобы importJobId в ImportJob использовался в качестве внешнего ключа для идентификатора таблицы размещения, так что когда у нас есть importJobId тогда и только тогда, мы можем иметь идентификатор в распределении, так как без Job не может быть никаких распределений.

Таблица ImportJob имеет составной первичный ключ как [ORGID, IMPORTJOBTYPE], и я пытаюсь получить отношение внешнего ключа в спящем режиме, используя

  
        
    
    

в Allocation.hbm.xml, который не работает и получаю сообщение об ошибке как:

Foreign key (FKB29B5F7366007086:ALLOCATIONS [importjobid])) 
must have same number of columns as the 
referenced primary key (IMPORTJOBMANAGMENT [ORGID,IMPORTJOBTYPE])

Вот мой файл ImportJob.hbm.xml

    


    
        
        
            
            
        

        
        
        
    

Вот классы bean для справки:

public class AllocationBean extends WorkbenchBeanBase
{
    private static final Logger log = Logger.getLogger(AllocationBean.class);
    private Float allocations;
    private String importJobType;
    private long id;
    private long orgId;
}

public class ImportJobManagment implements Serializable
{
    private long importjobid;
    private long orgId;
    private String importJobType;
    private boolean allocations = false;
}

Я удалилgetter/setter ради простоты.

Обновление: 1 Как это настроено прямо сейчас, у меня есть столбец id в одной таблице, который имеет ссылку на внешний ключ для составного ключа orgId и importJobType, я не уверен, что мы можем сделать это, и внешний столбец с одним ключом связан с составным ключом другой таблицы, но это 'Это мой вариант использования.

Обновление: 2

Спасибо за потрясающие подробности, это, безусловно, расширит мои знания о реализации внешних ключей, но моя конечная цель - сопоставление между двумя таблицами один к одному, где таблица A имеет составной ключ для идентификации уникальной строки в этой таблице и в таблице B, я хочу иметь первичный ключ, который будет иметь ссылку внешнего ключа на таблицу A, так что если у нас есть запись в таблице A, то такая же запись jobId должна быть в таблице B, теперь я понимаю, что у нас не может быть первичного ключа одного столбца в таблице B, который будет ссылаться на составной ключ в таблице А.

так что в основном я хочу иметь однозначное соответствие между таблицами, где таблица A имеет составной первичный ключ, а таблица B имеет первичный ключ из одного столбца, используя hibernate, что, конечно, вызывает указанную ошибку, и теперь я собираюсь создать составные ключи в таблице. B также, и теперь сделайте ссылку на внешний ключ на таблицу A, я проверю и обновлю свой вопрос позже, еще раз спасибо за подробные данные.

Ответы на вопрос(2)

Ваш ответ на вопрос