Hospedagem Profissional

Hospedagem Profissional
Clique aqui e ganhe US$ 10,00 para testar durante 1 mês a melhor hospedagem: Digital Ocean!

segunda-feira, 27 de outubro de 2008

NOSSO PADRÃO PARA CRIAÇÃO DE VO’s (Value Objects)

Nosso padrão interno para criação de VOs em conjunto com Hibernate Annotations:



@Entity(name="Redacao")

@SequenceGenerator(name="sequence_redacao", sequenceName = "sequence_redacao", allocationSize = 1)

@Proxy (lazy=false)

public class RedacaoVO implements Serializable {



@Id

@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequence_redacao")

private Long idRedacao;



@Column(nullable=false)

private DOMINIO_SIM_NAO flagRedacaoValida;


@Column(nullable=false)

private String urlPDF;



@OneToOne

@JoinColumn(name="idCandidato",nullable=false)

@ForeignKey(name="fk_candidato")

private CandidatoVO candidato;



@ManyToOne(fetch = FetchType.EAGER)

@JoinColumn(name="idLote", insertable = true, updatable=true)

@Fetch(FetchMode.JOIN)

@Cascade(CascadeType.SAVE_UPDATE)

@ForeignKey(name="fk_lote")

private LoteVO lote;



@OneToMany(mappedBy="redacao", fetch = FetchType.LAZY)

@Fetch(FetchMode.SUBSELECT)

@Cascade(CascadeType.ALL)

@ForeignKey(name="fk_redacao")

private List correcoes;



@ManyToMany(fetch = FetchType.LAZY)

@JoinTable(name="banca_redacao",

joinColumns=@JoinColumn(name="idLote"),

inverseJoinColumns=@JoinColumn(name="idRedacao"))

@ForeignKey(name="fk_redacao")

private List bancas;


@Version

private Integer version;


//Métodos Get e Set suprimidos

}