我想在我的数据库中为某些字段设置固定值,因此我声明了枚举,我想将它们映射到具有该固定值的数据库中。对此有什么最好的解决方案?
现在我编码了这个(它不起作用)
我在DB中的表:
CREATE TABLE IF NOT EXISTS `sistemaFacturacion`.`formaPago` (
`id` INT NOT NULL AUTO_INCREMENT,
`tipo` INT NOT NULL,
`descripcion` VARCHAR(100) NOT NULL,
`fecha` DATETIME NOT NULL,
`plazo` INT NOT NULL,
`interes` DOUBLE NOT NULL,
`cancelado` TINYINT(1) NOT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB
POJO班级:
@Entity
@Table(name = "formaPago")
public class FormaPago implements Serializable {
/**
*
*/
private static final long serialVersionUID = -412540568702221226L;
private Integer id;
private FormaPagoEnum tipo;
@Id @GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@Enumerated(EnumType.ORDINAL)
@Embedded
public FormaPagoEnum getTipo() {
return tipo;
}
public void setTipo(FormaPagoEnum tipo) {
this.tipo = tipo;
}
public FormaPago(){}
}
我的枚举课程:
@Embeddable
public enum FormaPagoEnum {
EFECTIVO("EFECTIVO", PlazoEnum.CERO, true),
CREDITO_QUINCE("CREDITO A QUINCE DIAS", PlazoEnum.QUINCE, false),
CREDITO_TREINTA("CREDITO A TREINTA DIAS", PlazoEnum.TREINTA, false),
CREDITO_SESENTA("CREDITO A SESENTA DIAS", PlazoEnum.SESENTA, false);
private String descripcion;
private Calendar fecha;
private PlazoEnum plazo;
private boolean cancelado;
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public void setFecha(Calendar fecha) {
this.fecha = fecha;
}
public void setPlazo(PlazoEnum plazo) {
this.plazo = plazo;
}
public void setCancelado(boolean cancelado) {
this.cancelado = cancelado;
}
@Column(name = "descripcion")
public String getDescripcion() {
return descripcion;
}
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "fecha", nullable = false)
public Calendar getFecha() {
return fecha;
}
@Enumerated(EnumType.ORDINAL)
@Embedded
@Column(name = "plazo")
public PlazoEnum getPlazo() {
return plazo;
}
@Column(name = "cancelado")
public boolean isCancelado() {
return cancelado;
}
FormaPagoEnum(){}
FormaPagoEnum(String descripcion, PlazoEnum plazo, boolean cancelado) {
this.descripcion = descripcion;
this.fecha = GregorianCalendar.getInstance();
this.plazo = plazo;
this.cancelado = cancelado;
}
}
如果你有其他一些更好的想法,请告诉我我是如何在休眠时做的新手!
提前致谢!