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();
}
}
Hibernate: insert into telefone (telefone_DDD, telefone_DDI, telefone_fax, telefone_mobilidade, telefone_numero) values (null, null, null, null, "33332222")
Hibernate: insert into telefone (telefone_numero) values ("33332222")
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
[img]http://img125.imageshack.us/img125/6720/tabelatn4.gif[/img]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
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;
}
}