Duvida sobre mapeamento @OneToOne do hibernateannotaion

Boa tarde galera,tenho uma associação entre as classes Publicacao e Arquivo de acordo com os codigos abaixo:
Publicacao.java


Entity
@Table(name="tb_publicacao")
public class Publicacao implements Serializable {

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	private Integer id;

	@OneToOne(mappedBy="publicacao",cascade = {CascadeType.ALL},fetch = FetchType.LAZY)
	@PrimaryKeyJoinColumn(name="sq_publicacao")
	private Arquivo arquivo;
                //outros atributos
@Entity
@Table(name="tb_anexo_publicacao")
public class Arquivo implements Serializable {

                @Id
	private Integer id;
               @OneToOne(fetch = FetchType.LAZY)
	private Publicacao publicacao;
               //outros atributos
 Da forma que o codigo se encontra,qdo tento persisti a classe [b]Publicacao[/b] a seguinte exceção é lançada:

Exception in thread "main" org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): testehb.pojo.Arquivo
  A chave primaria é compartilhada por ambas as entidades no banco.Gostaria de saber dos colegas como faço para qdo persisitir a classe [b]Publicacao [/b]o hibernate entenda que a sua chave será utilizada pela classe [b]Arquivo [/b]também.Antecipadamente, muito obrigado!!!

pelo q eu entendi…o q vc precisa usar eh joined subclass

espero ter ajudado…

flw