JPA 2.0 muchos a muchos con columna adicional

Estoy tratando de hacer una relación ManyToMany en JPA 2.0 (JBoss 7.1.1) con una columna adicional (en negrita, a continuación) en la relación, como:

Employer           EmployerDeliveryAgent             DeliveryAgent
(id,...)   (employer_id, deliveryAgent_id, **ref**)  (id,...)

No me gustaría tener atributos duplicados, por lo que me gustaría aplicar la segunda solución presentada enhttp://giannigar.wordpress.com/2009/09/04/mapping-a-many-to-many-join-table-with-extra-column-using-jpa/ . Pero no puedo hacer que funcione, recibo varios errores como:

La clase de ID incorporada no debe contener asignaciones de relaciones (de hecho, la especificación lo dice);En el atributo 'empleadorDeliveryAgent', el valor "mapeado por" 'pk.deliveryAgent' no se puede resolver a un atributo en la entidad de destino;En el atributo 'empleadorDeliveryAgent', el valor "mapeado por" 'pk.employer' no se puede resolver a un atributo en la entidad objetivo;El tipo de atributo de anulación persistente "pk.deliveryAgent" no se puede resolver;El tipo persistente de atributo de anulación "pk.employer" no se puede resolver;

Muchas personas en ese enlace dijeron que funcionaba bien, así que supongo que algo es diferente en mi entorno, tal vez la versión JPA o Hibernate. Entonces mi pregunta es: ¿cómo puedo lograr tal escenario con JPA 2.0 (Jboss 7.1.1 / usando Hibernate como implementación de JPA)? Y para complementar esa pregunta: ¿debo evitar el uso de claves compuestas y en su lugar usar una identificación generada y una restricción única?

Gracias por adelantado.

Obs .: No copié mi código fuente aquí porque es esencialmente una copia del enlace anterior, solo con diferentes clases y nombres de atributos, así que supongo que no es necesario.

Respuestas a la pregunta(3)

Su respuesta a la pregunta