Relacionamento @OneToOne: Chave Primária Parcial

Pessoal, tudo bem?

Tenho um cenário aqui que aparentemente seria simples de resolver, mas até agora não consegui evoluir muito.

Nosso sistema possui duas tabelas conforme mostrado a seguir:

+-------------------+        +------------------------+        
| TB_CONFIG         |        | TB_CONFIG_LANG         |        
+-------------------+        +------------------------+        
| Customer_Id  (PK) |        | Product_Id         (PK)|        
| Company_Id   (PK) |        | Config_Id          (PK)|        
| Product_Id   (PK) |        | Language_Id        (PK)|        
| Config_Id    (PK) |        | Config_Description     |        
| Config_Value      |        | Config_Hint            |        
+-------------------+        | Config_Help            |   
                             +------------------------+  

Eu preciso realizar o Mapeamento dessas duas tabelas usando o JPA.

Na tabela TB_CONFIG, eu armazeno “configurações” dos produtos que nossa empresa disponibiliza, armazenados por cliente e empresa.

Por exemplo:

Customer_ID..: 1
Company_ID...: 100
Product_ID...: 1
Config_ID....: 'ACEITA_ACESSO_ANONIMO'
Config_Value.: 'Y'

Ja a tabela TB_CONFIG_LANG armazena as Descrições, Hints e Ajuda dos parâmetros do sistema…

Exemplo:

Product_ID........: 1
Config_ID.........: 'ACEITA_ACESSO_ANONIMO'
Language_ID.......: 'pt-BR'
Config_Description: "Informa se o sistema permite acesso anônimo ou não"
Config_Hint.......: "..."
Config_Help.......: "..."

A principio, eu imaginei fazer um relacionamento @OneToOne da entidade que representa a tabela TB_CONFIG para a entidade que representa a tabela TB_CONFIG_LANG, usando apenas as duas colunas que são comuns entre elas: PRODUCT_ID e CONFIG_ID e na consulta JPQL, passar o parametro LANGUAGE_ID, dessa forma:

Relacionamento

    @OneToOne
    @JoinColumn(name = "PRODUCT_ID", referencedColumnName = "PRODUCT_ID", insertable = false, updatable = false)
    @JoinColumn(name = "CONFIG_ID", referencedColumnName = "CONFIG_ID", insertable = false, updatable = false)
    private ConfigurationLanguage language;

Consulta JPQL

TypedQuery<ConfigurationCompany> query = manager.createQuery("select c from ConfigurationCompany c " +
        "join c.language l " +
        "where c.id.customerId = :customerId " +
        "and c.id.companyId = :companyId " +
        "and c.id.productId = :productId " +
        "and c.id.configId = :configId " +
        "and l.id.languageId = :languageId", ConfigurationCompany.class);

Mas o JPA questiona justamente a coluna que está faltando no mapeamento, lançando o erro abaixo:

org.springframework.orm.jpa.JpaSystemException: referencedColumnNames(PRODUCT_ID, CONFIG_ID) of com.mycompany.api.configuration.domain.model.ConfigurationCompany.language referencing com.mycompany.api.configuration.domain.model.ConfigurationLanguage not mapped to a single property; nested exception is org.hibernate.AnnotationException: referencedColumnNames(PRODUCT_ID, CONFIG_NAME) of com.mycompany.api.configuration.domain.model.ConfigurationCompany.language referencing com.mycompany.api.configuration.domain.model.ConfigurationLanguage not mapped to a single property

Alguém pode me dar uma dica de como resolver isso?

Valeu pessoal!