Salve galera, alguem poderia me ajudar, tenho estas 3 classes: Tarefa, Acoes e Usuario. Um usuario insere uma tarefa no sistema, cada tarefa possui uma lista de acoes que sao realizadas por outros usuarios, como eu mapearia estas classes, eu tento mas sempre da erro, no hibernate eu preciso informar que alguns campos podem ser null? Seria melhor criar mais alguma classe complementar?
Seguem as classes.
Classe TAREFA:
package br.com.gerenciadortarefas.modelo;
import java.util.Calendar;
import java.util.List;
import java.util.Set;
import javax.persistence.*;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
@Entity
@Table(name="tarefas")
public class Tarefa {
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="id_tarefa")
private Long id;
private String titulo;
private String descricao;
private Calendar dataInicio;
private Boolean finalizada;
private Calendar dataFinalizacao;
@OneToMany(fetch=FetchType.EAGER, mappedBy="tarefa")
@Cascade(CascadeType.ALL)
private Set<Acoes> acoes;
//Getters & Setters
CLASSSE AÇÃO
package br.com.gerenciadortarefas.modelo;
import java.util.Calendar;
import javax.persistence.*;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
@Entity
public class Acao {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id_acoes")
private Long id;
private String descricao;
private Calendar data;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "id_tarefa", insertable = true, updatable = true)
@Fetch(FetchMode.JOIN)
@Cascade(CascadeType.SAVE_UPDATE)
private Tarefa tarefa;
//duvida nesta parte
private Usuario usuario;
//Getters & Setters
CLASSE USUARIO
package br.com.gerenciadortarefas.modelo;
import java.util.List;
import javax.persistence.*;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
@Entity
@Table(name="usuarios")
public class Usuario {
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="id_usuario")
private Long id;
private String login;
private String senha;
private String departamento;
@OneToMany(fetch=FetchType.EAGER, mappedBy="acoes")
@Cascade(CascadeType.ALL)
private List<Acoes> acoes;
//Getters & Setters
Muito obrigado pela força!
