Tenho o seguinte mapeamento:
@SuppressWarnings("serial")
@Entity
@Table(name="CONCEITO",schema="MONOGRAFIAS")
public class ConceitoModel implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="ID")
private Long id;
@Column(name="DESCRICAO")
private String descricao;
@Column(name="FLAG_ATIVO")
private Byte flagAtivo;
@Column(name="FLAG_CONCEITO_PAI")
private Byte flagConceitoPai;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "TAXONOMIA_ID", insertable = true, updatable = true)
@Fetch(FetchMode.JOIN)
@Cascade(CascadeType.SAVE_UPDATE)
private TaxonomiaModel taxonomiaModel;
@Entity
@Table(name="TAXONOMIA",schema="MONOGRAFIAS")
public class TaxonomiaModel implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="ID")
private Long id;
@Column(name="DESCRICAO")
private String descricao;
@Column(name="FLAG_ATIVO")
private Byte flagAtivo;
@OneToMany(mappedBy="taxonomiaModel", fetch = FetchType.LAZY)
@Cascade(CascadeType.ALL)
private List<ConceitoModel> conceitos;
conceitoDAO.save(conceitoModel);
Esqueci de mensionar que a taxonomia que o conceito tem, eu salvo em um méodo anterior e isso tudo está em uma transação .