Boa tarde galera, estou com uma duvida acho q eh simples…
tipo tenho no meu hibernate.cfg.xml um mapeamento de uma entidade
<mapping class"br.com.teste.Teste" /> , ateh ai tudo blz, soh q tipo no banco essa entidade tem uma coluna chamada DATA_CADASTRO e no meu EntityBean deixei dataCadastro para ficar nos padroes…
soh que deixando assim ele nao encontra a coluna dataCadastro pq o nome no banco eh DATA_CADASTRO!
como eu especifico o nome da tabela no mapeamento?
por exemplo no ejb seria soh colocar em cima da variavel @Colunm(name = “DATA_CADASTRO”) , soh q no hibernate isso nao funciona!
É isso mesmo, o erro deve ser outro, que msg aparece no log ?
@Column(name = “DATA_CADASTRO”) ta correto pra mapear a coluna
L
Luan.Ibarra
Boa tarde Anderson,
entao aparece assim:
Column not found: DATACADASTRO in statement [insert into USUARIOS (creditos, dataCadastro, dataUltimoAcesso, foto, login, nome, senha, idUsuario) values (?, ?, ?, ?, ?, ?, ?, ?)]
realmente nao existe no banco coluna DATACADASTRO e sim DATA_CADASTRO …isso que nao consigo, avisar que no banco a coluna se chama DATA_CADASTRO …
Anderson_Leite
por desencargo…você tem anotado na sua classe :
@Entity
@Table(name = "NOME_DA_TABELA")
?
L
Luan.Ibarra
tenho sim, segue a classe completa:
packagecom.consensus.bean.entity;importjava.io.Serializable;importjava.util.Date;importjavax.persistence.CascadeType;importjavax.persistence.Column;importjavax.persistence.Entity;importjavax.persistence.FetchType;importjavax.persistence.GeneratedValue;importjavax.persistence.GenerationType;importjavax.persistence.Id;importjavax.persistence.Lob;importjavax.persistence.NamedQueries;importjavax.persistence.NamedQuery;importjavax.persistence.OneToOne;importjavax.persistence.SequenceGenerator;importjavax.persistence.Table;importcom.consensus.util.Format;@Entity@Table(name="USUARIOS")@SequenceGenerator(name="seq",sequenceName="S_USUARIOS")@NamedQueries({@NamedQuery(name="checkLogin",query="select c from UsuarioEntity c where c.senha = :senha and c.login = :login")})publicclassUsuarioEntityimplementsSerializable{/** * */privatestaticfinallongserialVersionUID=-7891796436766731118L;privateLongidUsuario;@Column(name="APELIDO")privateStringlogin;@Column(name="CREDITOS")privateStringcreditos;@Column(name="DATA_CADASTRO")privateDatedataCadastro;@Column(name="DATA_ULTIMO_ACESSO")privateDatedataUltimoAcesso;@Lob@Column(name="FOTO")privatebyte[]foto;@Column(name="NOME")privateStringnome;@Column(name="SENHA")privateStringsenha;privateEnderecoEntityendereco;@Id@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="seq")publicLonggetIdUsuario(){returnidUsuario;}publicvoidsetIdUsuario(LongidUsuario){this.idUsuario=idUsuario;}publicStringgetLogin(){returnlogin;}publicvoidsetLogin(Stringlogin){this.login=Format.getNome(login);}publicStringgetCreditos(){returncreditos;}publicvoidsetCreditos(Stringcreditos){this.creditos=Format.getNome(creditos);}publicDategetDataCadastro(){returndataCadastro;}publicvoidsetDataCadastro(DatedataCadastro){this.dataCadastro=dataCadastro;}publicDategetDataUltimoAcesso(){returndataUltimoAcesso;}publicvoidsetDataUltimoAcesso(DatedataUltimoAcesso){this.dataUltimoAcesso=dataUltimoAcesso;}publicbyte[]getFoto(){returnfoto;}publicvoidsetFoto(byte[]foto){this.foto=foto;}publicStringgetNome(){returnnome;}publicvoidsetNome(Stringnome){this.nome=Format.getNome(nome);}publicStringgetSenha(){returnsenha;}publicvoidsetSenha(Stringsenha){this.senha=senha;}@OneToOne(cascade=CascadeType.ALL,fetch=FetchType.LAZY,mappedBy="usuario")publicEnderecoEntitygetEndereco(){returnendereco;}publicvoidsetEndereco(EnderecoEntityendereco){this.endereco=endereco;}}
L
lvffilho
o que deu pra perceber eh que vc mapeou o campo assim:
@Colunm(name = “DATA_CADASTRO”)
e no banco esta ‘datacadastro’ sem o ‘_’
ps: o mesmo acontece pro campo dataUltimoAcesso…
[]s
L
Luan.Ibarra
eh ao contrario, no banco o nome da coluna eh DATA_CADASTRO , mas na hora de mapear a classe o hibernate entende que o nome da coluna eh o mesmo da variavel ai fica dataCadastro …
L
lvffilho
No banco ta como?
quando vc utiliza a tag colunm eh pra por o nome igual esta no banco…
ex: @Colunm(name = “DATA_CADASTRO”)
o nome da coluna no banco deve estar data_cadastro…
L
Luan.Ibarra
fiz exatamente assim…
@Colunm(name = “DATA_CADASTRO”)
e no banco esta DATA_CADASTRO tbm…
soh q qnd executo o insert ele fala
Column not found: DATACADASTRO in statement [insert into USUARIOS (creditos, dataCadastro, dataUltimoAcesso, foto, login, nome, senha, idUsuario) values (?, ?, ?, ?, ?, ?, ?, ?)]
L
lvffilho
cara… tem alguma coisa errada… por um acaso vc nao tem class perdido nao?
nunca tive problema assim…
ele nao ta pegando DATA_CADASTRO…
vc nao fez antes com datacadastro e depois mudou?
apaga a pasta build la e recompila tudo…
L
Luan.Ibarra
estou usando tomcat e hibernate soh…ja apaguei tdo e crei de nvoo e continua o erro…
eh alguma coisa q tem q por no meu hibernate.cfg.xml
segue ele: