Hibernate + oracle campo version obrigatorio?

9 respostas
juniorsatanas

Pessoal, tenho 10 mil tabelas no meu banco, nem uma tem campo version !
e na hora do mapeamento do sistema… o hibernate da um erro dizendo : O CAMPO FILHO DA PUTA VERSÃO NAO EXISTE.
Alguém tem ideia ? de como resolver isso… O DBA quase me bate quando falei que ele teria que criar isso, no 3 bancos… kakakkakkaka

Obrigado.

9 Respostas

lele_vader

Nas suas classes não tem esse campo não ?
Talvez você tenha deixado esse campo lá e não colocou @Transient.

juniorsatanas

Grande LELE…

Cara são 10 mil tabelas, nem uma delas tem ESSE CAMPO… esse campo e para tratar concorrencia… não devia ser obrigatório !

lele_vader

Então, no seus pojo’s tem um campo com version ?

juniorsatanas

Não tem nao !

Fiz um teste:

Criei uma tabela chamada putas, com 3 campos preço , nome, id

Fiz o mapeamento, e mandei rodar !

Da o mesmo erro, faltando campo VERSION !

:open_mouth:

lele_vader

Mostra o stack trace do erro aí.

juniorsatanas
DEPLOYMENTS IN ERROR:
  Deployment "persistence.unit:unitName=marcacaoconsulta-ear.ear/lib/INSS-model-1.0.0-SNAPSHOT.jar#INSS" is in error due to the following reason(s): org.hibernate.HibernateException: Missing column: versao in SQUEMA.WEB_PESSOA
  Deployment "persistence.unit:unitName=INSS-ear.ear/hapvida-model.jar#hapvida" is in error due to the following reason(s): org.hibernate.HibernateException: Missing column: versao in SQUEMA.WEB_PESSOA
juniorsatanas

LELE..

Quando eu tiroi o extends o erro some:

package br.com.inss;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;

import br.com.hapvida.entity.InssEntity; <-------------------------------aqui que ta o erro
import br.com.hapvida.enums.StatusUsuario;

@Entity
@SequenceGenerator(name = "web_usuario_seq", sequenceName = "web_usuario_seq")
@Table(name = "web_usuario")
public class Usuario extends InssEntity {

	private static final long serialVersionUID = 1L;

	private Long id;
	private String codigoUsuario;
	private String numeroUsuario;
	private Pessoa pessoa;
	private StatusUsuario statusUsuario;
	private Date dataCancelamento;
	private String numeroTitular;

	public Usuario() {
		super();
	}

	@Id
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "web_usuario_seq")
	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	@Column(name = "codigo_usuario")
	@NotNull(message = "br.com.hapvida.usuario.codigoUsuario.notNull")
	public String getCodigoUsuario() {
		return codigoUsuario;
	}

	public void setCodigoUsuario(String codigoUsuario) {
		this.codigoUsuario = codigoUsuario;
	}

	@Column(name = "numero_usuario")
	@NotNull(message = "br.com.hapvida.usuario.numeroUsuario.notNull")
	public String getNumeroUsuario() {
		return numeroUsuario;
	}

	public void setNumeroUsuario(String numeroUsuario) {
		this.numeroUsuario = numeroUsuario;
	}

	@ManyToOne
	@JoinColumn(name = "id_pessoa")
	@NotNull(message = "br.com.hapvida.usuario.pessoa.notNull")
	public Pessoa getPessoa() {
		return pessoa;
	}

	public void setPessoa(Pessoa pessoa) {
		this.pessoa = pessoa;
	}

	@Enumerated(EnumType.ORDINAL)
	@Column(name = "status_usuario")
	public StatusUsuario getStatusUsuario() {
		return statusUsuario;
	}

	public void setStatusUsuario(StatusUsuario statusUsuario) {
		this.statusUsuario = statusUsuario;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "data_cancelamento")
	public Date getDataCancelamento() {
		return dataCancelamento;
	}

	public void setDataCancelamento(Date dataCancelamento) {
		this.dataCancelamento = dataCancelamento;
	}

	@Column(name = "numero_titular")
	@NotNull(message = "br.com.hapvida.usuario.numeroTitular.notNull")
	public String getNumeroTitular() {
		return numeroTitular;
	}

	public void setNumeroTitular(String numeroTitular) {
		this.numeroTitular = numeroTitular;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((id == null) ? 0 : id.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Usuario other = (Usuario) obj;
		if (id == null) {
			if (other.id != null)
				return false;
		} else if (!id.equals(other.id))
			return false;
		return true;
	}

}
[code]
lele_vader

Mostra essa classe que está dando erro.

juniorsatanas

Lele… todas elas dão ! pois elas extends, da super class@… quando tiro a anotação para de dar !

quando tiro isso : extends InssEntity
mas ai perco a herança !

Criado 5 de julho de 2012
Ultima resposta 8 de jul. de 2012
Respostas 9
Participantes 2