Como injetar chave primaria

Pessoal, tenho duas classes: User e Address.

public class User {

 @Id
 private Integer user_id;
 private String firstname;
 private String lastname;
 
 @OneToOne
 private Address address; 


}

e a tabela Address

public class Address{

  @Id
  private Integer address_id;
  private String street;
  private String zipcode;
  private String city;

}

Como faço para que o hibernate injete a PK de User (user_id) em PFK de Address(address_id) ?

O que quero fazer é algo assim:

 User user = new User(); 
 //em seguida seta propriedades de user
 Address address = new Address();
 //em seguida seta propriedades de address, exceto id que deve ser injetado pelo hibernate
 

 u.setAddress( address );

 session.save( user );

Você pode setar o cascade type em sua anotação de relacionamento.

Voce poderia mostrar um exemplo, ou então indicar um material? Estou dando os primeiros passos com JPA e Hibernate. Preciso de orientações. Obrigado!

De uma olhada nesse post, te recomendo como livro HIbernate in Action.
http://www.guj.com.br/posts/list/214713.java

@OneToOne(cascade = { CascadeType.ALL })
private Address address;

[quote=Rodrigo Oliveira]De uma olhada nesse post, te recomendo como livro HIbernate in Action.
http://www.guj.com.br/posts/list/214713.java

Rodrigo, fiz o que vc sugeriu, porém o hibernate nao mapeou os dados do Objeto Address para o banco. Fiz a chamada da seguinte maneira:

User user = new User();
//setei as propriedades de user

Address address = new Address();
//setei as propriedades de address

user.setAddress( address );
address.setUser( user );

session.save( user );

Quando tentei fazer o que o amigo acima sugeriu, de inserir CascadeType, ocorreu o seguinte erro:
org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): br.hibernate.model.Address

[/quote]

Bom,
Além do cascade, você deve indicar o campo de join como o Rodrigo citou:

@OneToOne(cascade = { CascadeType.ALL })
@JoinColumn(name=“address_id”)
private Address address;

Fique atento para o seus campo anotado com @Id. Ele será gerado automaticamente? Você vai definir o valor? Existe uma sequence que define seu valor?

Dê uma olhada neste pdf:
http://wiki.futurepages.org/lib/exe/fetch.php?media=quickstart:hibernate_anotacoes.pdf

Obrigado pelas dicas pessoal. Vou estudar as apostilas sugeridas.

Obrigado Tiago Peter pela apostila que vc me passou. Ela é extraordinariamente fantástica. Eu aprendi muito.