pessoal queria q alguem me explicasse o q cada propiedade do CascadeType faz na hora do mapeamento.
CascadeType.MERGE
CascadeType.PERSIST
CascadeType.REMOVE
CascadeType.REFRESH
quem puder ai obrigado
pessoal queria q alguem me explicasse o q cada propiedade do CascadeType faz na hora do mapeamento.
CascadeType.MERGE
CascadeType.PERSIST
CascadeType.REMOVE
CascadeType.REFRESH
quem puder ai obrigado
ai se alguem ainda puder me ajudar pode dizer a grosso modo mesmo,so quero saber o cada uma faz,sem muitos detalhes.
eu acho mais fácil vc buscar isso na net ou até mesmo no manual do hibernate…
em todo caso…num modo grosso as palavras :
MERGE : faz a alteração que vc mandou diretamente no banco ignorando os objetos q ficam na sessão…ou seja se na sua sessão o objeto tiver um valor e vc quiser passar por cima e atualizar diretamente no banco ao invés do save use o merge
REMOVE : o nome já diz
REFRESH : o nome também já diz (atualizar)
PERSIST : deve ser o contrário do merge…ele deve usar o objeto da sessão antes.
Não esta muito bem explicado mas dá uma luz…
http://www.hibernate.org/hib_docs/annotations/reference/en/html_single/#entity-hibspec-cascade
2.4.7. Cascade
Hibernate offers more operations than the Java Persistence specification. You can use the @Cascade annotation to cascade the following operations:
PERSIST
MERGE
REMOVE
REFRESH
DELETE
SAVE_UPDATE
REPLICATE
DELETE_ORPHAN
LOCK
EVICT
This is especially useful for SAVE_UPDATE (which is the operation cascaded at flush time if you use plain Hibernate Annotations - Hibernate EntityManager cascade PERSIST at flush time as per the specification). DELETE_ORPHAN applies only to @OneToMany associations, and indicates that the delete()/remove() operation should be applied to any child object that is removed from the association. In other words, if a child is dereferenced by a persistent parent and if DELETE_ORPHAN is used, the “orphaned” child is deleted.
@OneToMany( cascade = {CascadeType.PERSIST, CascadeType.MERGE} )
@Cascade({org.hibernate.annotations.CascadeType.SAVE_UPDATE,
org.hibernate.annotations.CascadeType.DELETE_ORPHAN})
public Collection<Employer> getEmployers()
It is recommended to use @Cascade to compliment @To(cascade=…) as shown in the previous example.
obrigado vlw mesmo!!!
Então eu utilizo REMOVE para, além de remover a entidade, deletar também as entidades que ela faz referência???
Assim:
[code]Class Cabeça{
@OneToOne(mappedBy=“Pessoa”)
}
Class Pessoa{
@OneToOne(cascade = CascadeType.REMOVE)
@JoinColumn(name=“Cabeça_fk”)
private Cabeça;
}[/code]
Então quando eu deleto uma pessoa deleto também uma cabeça?
Ps: Eu sou muito noob no hibernate.