Hibernate ligação One to One

Tenho uma tabela de pessoa e ligo ela com uma tabela pessoa_cliente que seria uma continuação dos dados da pessoa.

Uma informação importante: Em meu banco todas as tabelas tem um campo que define a que empresa este registro pertence.

Por esse motivo quando gero o mapeamento do Hibernate ele cria uma classe PessoaPK uma PessoaClientePK e assim por diante.

O Problema é que quando tento pegar um registro qualquer que se ligue à pessoa(Que são quase todas as tabelas) recebo o exception a seguir:

Exception in thread "main" org.hibernate.PropertyAccessException: exception getting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) getter of data.sistema.PessoaClientePK.?
	at org.hibernate.tuple.PojoComponentTuplizer.getPropertyValues(PojoComponentTuplizer.java:89)
	at org.hibernate.type.ComponentType.getPropertyValues(ComponentType.java:307)
	at org.hibernate.type.ComponentType.getHashCode(ComponentType.java:158)
	at org.hibernate.engine.EntityKey.generateHashCode(EntityKey.java:103)
	at org.hibernate.engine.EntityKey.<init>(EntityKey.java:47)
	at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:76)
	at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:862)
	at org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:830)
	at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:266)
	at org.hibernate.type.EntityType.resolve(EntityType.java:303)
	at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:116)
	at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:842)
	at org.hibernate.loader.Loader.doQuery(Loader.java:717)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
	at org.hibernate.loader.Loader.loadEntity(Loader.java:1785)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:47)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:41)
	at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:2730)
	at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:365)
	at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:346)
	at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:123)
	at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:161)
	at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:87)
	at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:862)
	at org.hibernate.impl.SessionImpl.load(SessionImpl.java:781)
	at org.hibernate.impl.SessionImpl.load(SessionImpl.java:774)
	at sistema.Splash.carregaSistema(Splash.java:199)
	at sistema.Splash.initialize(Splash.java:68)
	at sistema.Splash.<init>(Splash.java:56)
	at sistema.Main.getSplash(Main.java:49)
	at sistema.Main.main(Main.java:32)
Caused by: java.lang.ClassCastException: data.sistema.PessoaPK
	at data.sistema.PessoaClientePK$$BulkBeanByCGLIB$$f5fc04fb.getPropertyValues(<generated>)
	at net.sf.cglib.beans.BulkBean.getPropertyValues(BulkBean.java:48)
	at org.hibernate.tuple.PojoComponentTuplizer.getPropertyValues(PojoComponentTuplizer.java:86)
	... 30 more

Não consigo entender oque ocorre.

Esse exception é disparado no primeiro “load” do codigo a seguir:

		//Só para pegar o primeiro session oque força ele a mapear.
		HibernateUtility.getSession();

		//Tento pegar um PessoaUsuario, e é aqui que da o exception.
		HibernateUtility.getSession().load(PessoaUsuario.class, new PessoaUsuarioPK(1L, 1L));
		HibernateUtility.getSession().load(Empresa.class, 1L);

Poste os arquivos de mapeamento. E mais uma pergunta o relacionamento é uni ou bi direcional?