Mapeamento OneTone, chave composta

Tenho as tabelas: EmpresaFilial, Endereco (relaciamento 1/1)
Tenho as classes: EmpresaFilial, Endereco, EnderecoPK

Classe EmpresaFilial

@Entity
@Table(name = "TBEMPRESA_FILIAL")
public class EmpresaFilial{

	@Id
	@GeneratedValue
	private Integer idEmpresa;

        @OneToOne(mappedBy="empresaFilial")
	private Endereco endereco;

Classe Endereco

@Entity
@Table(name = "TBENDERECO")
@IdClass(EnderecoPK.class)
public class Endereco{

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Integer idEndereco;
	
	@Id
	@OneToOne
	@JoinColumn(name = "idEmpresa")
	private EmpresaFilial empresaFilial;

Classe EnderecoPK

public class EnderecoPK implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private Integer idEndereco;
	private Integer empresaFilial;

[color=red]
ERRO[/color]

INFO: HHH000397: Using ASTQueryTranslatorFactory Exception in thread "main" java.lang.ExceptionInInitializerError at Main.inserir(Main.java:32) at Main.main(Main.java:13) Caused by: javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build EntityManagerFactory at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:924) at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:899) at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:59) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47) at br.com.offerapp.util.JPAUtil.<clinit>(JPAUtil.java:9) ... 2 more Caused by: org.hibernate.MappingException: broken column mapping for: endereco.id of: br.com.offerapp.entities.EmpresaFilial at org.hibernate.persister.entity.AbstractPropertyMapping.initPropertyPaths(AbstractPropertyMapping.java:178)

Não consigo visualizar onde possa ter errado, acredito que mapear um chave composta seja dessa maneira, contudo espero contar com a ajuda de vocês mais umas vez.

Você não tinha que usar PrimaryKeyJoinColumn ao invés de JoinColumn no OneToOne?