Oi pessoal, estou com um problema bem simples… mais não consegui achar a solução …
Estou usando Hibernate, e estou kerendo adcionar 1 objeto a minha tabela, só que os campos na tabale são NOT NULL, e quero manter isso, porem, [color=red]quando vou inserir dados na tabela, eu gostaria que se o campo fosse nulo, ele seguisse o valor padrão setado na tabela da tabela.[/color]
mesmo quando as propriedades do objetos são nulas ele tenta inserir como nulo, segue o pekeno código abaixo
public class Teste3 {
public static void main(String[] args) {
Session session = HibernateUtil.getSession();
Telefone t = new Telefone();
t.setTelefone("33332222");
Transaction tx = session.beginTransaction(); //Cria transação
session.save(t);
tx.commit();
}
}
A saida do hibernate foi
[color=red]porem a minha intenção é que quando os valores sejam nulos no momento do insert, ele simplismente subtraia esses campos do insert eu esperava algo como:[/color]
pois ai nesse caso os valores padrões seriam assumidos pelos campos nulos no momento do INSERT. queria q não fosse necessario setar valores para outras propriedades do telefone.
estou usando Hibernate Annotation, porem se alguem sober a solução sem Annotation sem problemas, só queria saber a solução para ele suprimir, apenas no momento do insert, os valores nulos, pelos valores no banco de dados.
abaixo segue os códigos de criação da tabela, um screen da tabela, e o código do objeto Telefone
Ps.: Desde já agradeço qualquer ajuda
CREATE TABLE IF NOT EXISTS `simrenta_myfactory`.`telefone` (
`telefone_id` BIGINT NOT NULL AUTO_INCREMENT ,
`telefone_fax` INT(3) NOT NULL DEFAULT 1 ,
`telefone_mobilidade` INT(3) NOT NULL DEFAULT 1 ,
`telefone_DDI` VARCHAR(5) NOT NULL DEFAULT '55' ,
`telefone_DDD` VARCHAR(5) NOT NULL DEFAULT '83' ,
`telefone_numero` VARCHAR(20) NOT NULL ,
PRIMARY KEY (`telefone_id`) ,
UNIQUE INDEX `u_telefone_DDI_DDD_numero` (`telefone_DDI` ASC, `telefone_DDD` ASC, `telefone_numero` ASC) ,
INDEX `fk_telefone_telefoneFax` (`telefone_fax` ASC) ,
INDEX `fk_telefone_telefoneMobilidade` (`telefone_mobilidade` ASC) ,
CONSTRAINT `fk_telefone_telefoneFax`
FOREIGN KEY (`telefone_fax` )
REFERENCES `simrenta_myfactory`.`telefoneFax` (`telefoneFax_id` )
ON DELETE RESTRICT
ON UPDATE CASCADE,
CONSTRAINT `fk_telefone_telefoneMobilidade`
FOREIGN KEY (`telefone_mobilidade` )
REFERENCES `simrenta_myfactory`.`telefoneMobilidade` (`telefoneMobilidade_id` )
ON DELETE RESTRICT
ON UPDATE CASCADE)
ENGINE = InnoDB
Objeto Telefone
[code]package com.tomazlavieri.myfactory.dominio.util;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Table(name=“telefone”)
public class Telefone {
/**
* Número de identificacao interno do telefone no banco de dados
/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name=“telefone_id”)
private int identificacao;
/*
*
/
@ManyToOne
@JoinColumn(name=“telefone_mobilidade”)
private TelefoneMobilidade mobilidade;
@ManyToOne
@JoinColumn(name=“telefone_fax”)
private TelefoneFax fax;
@Column(name=“telefone_DDI”)
private String codigoDDI;
@Column(name=“telefone_DDD”)
private String codigoDDD;
@Column(name=“telefone_numero”)
private String telefone;
public Telefone() {}
/*
* @param identificacao the identificacao to set
/
public void setIdentificacao(int identificacao) {
this.identificacao = identificacao;
}
/*
* @return the identificacao
/
public int getIdentificacao() {
return identificacao;
}
/*
* @param mobilidade the mobilidade to set
/
public void setMobilidade(TelefoneMobilidade mobilidade) {
this.mobilidade = mobilidade;
}
/*
* @return the mobilidade
/
public TelefoneMobilidade getMobilidade() {
return mobilidade;
}
/*
* @param fax the fax to set
/
public void setFax(TelefoneFax fax) {
this.fax = fax;
}
/*
* @return the fax
/
public TelefoneFax getFax() {
return fax;
}
/*
* @param codigoDDI the codigoDDI to set
/
public void setCodigoDDI(String codigoDDI) {
this.codigoDDI = codigoDDI;
}
/*
* @return the codigoDDI
/
public String getCodigoDDI() {
return codigoDDI;
}
/*
* @param codigoDDD the codigoDDD to set
/
public void setCodigoDDD(String codigoDDD) {
this.codigoDDD = codigoDDD;
}
/*
* @return the codigoDDD
/
public String getCodigoDDD() {
return codigoDDD;
}
/*
* @param telefone the telefone to set
/
public void setTelefone(String telefone) {
this.telefone = telefone;
}
/*
* @return the telefone
*/
public String getTelefone() {
return telefone;
}
}[/code]