[code]@Entity(dynamicInsert = true, dynamicUpdate = true)
@Table(name = “person”)
@Inheritance(strategy = InheritanceType.JOINED)
public class Person {
@Id
@GeneratedValue
private Long id;
private String name;
private boolean active;
private String cell;
private String phone;
private String email;
private String password;
@Enumerated(EnumType.STRING)
private Role role;
@ManyToOne
@JoinColumn(name = "address_id", nullable = true)
private Address address;
[/code]
Metodo de insert:
[code]
Person p = new Person();
p.setEmail("adasd@ig.com’);
p.setActive(true);
p.setRole(Role.ADMINISTRADOR);
p.setPassword("12345’);
IDao dao = new Dao();
dao.create§;[/code]
Para inserir me da a seguinte exception:
Aparentemente o mapeamento da sua entity para a sessionFactory do hibernate não está ok. Está passando o qualificador corretamente?
Pelo que eu pude perceber se eu utilizar o pacote org.hibernate.annotations.Entity para mapear a classe e utilizar o recurso de dynamicInsert e dynamicUpdate, da o erro já citado, agora se eu utilizar o pacote javax.persistence.Entity para mapear a classe o erro não ocorre, dai tudo funciona.
Eu estava utilizando @Entity do hibernate justamente para utilizar o recurso dynamicInsert e dynamicUpdate, e pelo que eu andei pesquisando não existe algo semelhante para JPA.
Puxa bom saber disso, apesar de não ser surpresa, apesar da versão 2.0 do JPA o Hibernate em certa features ainda se sobressai.
dynamic-update (optional - defaults to false): specifies that UPDATE SQL should be generated at runtime and can contain only those columns whose values have changed.
dynamic-insert (optional - defaults to false): specifies that INSERT SQL should be generated at runtime and contain only the columns whose values are not null.
Talvez até tenha algo similar no JPA puro, mas…
[]s