por alguna razón jpa dejo de seguir las etiquetas. Le coloca otros nombres a las tablas y le cambia la longitud de los campos, a pesar de que tiene @Column(name="nombre")
.Si cambio el nombre del campo por otro cualquiera, igualmente sigue tomando el nombre que él quiere, que siempre es el mismo.Uso postgreSQL.
He reinstalado el JDK y el IDE. Después actualice el JDK. También intente creando un proyecto nuevo. Probe el código en otro computador y nada de eso funcionó.
El código de las clases que se que estan dando problemas, y como esta quedando en la base de datos.
package clases;
import java.io.Serializable;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import javax.persistence.*;
@MappedSuperclass
public abstract class Ticket implements Serializable
{
private static final long serialVersionUID=1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
//atributo con problemas de nombre. El nombre de la tabla esta en la subclase
@ManyToOne
@JoinColumn(referencedColumnName = "id_empleado_caja")
private EmpleadoCaja cajero;
@Column(length = 25)
private String serie;
private Integer numeroDeDocumento;
private Integer numeroDeControl;
@Temporal(TemporalType.TIMESTAMP)
private Date fechaDeDocumento;
@Temporal(TemporalType.DATE)
private Calendar fechaDeSistema;
@Column(length = 50)
private String serialImpresora;
@Column(length = 50)
private String numeroDeReporteZ;
//resto de la clase
}
package clases;
import java.io.Serializable;
import java.util.LinkedList;
import javax.persistence.*;
import java.util.List;
@Entity
@Table(name = "facturas_encabezado")
@AttributeOverrides({@AttributeOverride(name="id", column=@Column(name = "id_factura_encabezado")),
//el atributo con problemas //nombre que debe tener e campo en la tabla
@AttributeOverride(name="cajero", column=@Column(name = "id_empleado_caja_factura_encabezado")),
@AttributeOverride(name="serie", column=@Column(name = "serie_factura_encabezado")),
@AttributeOverride(name="numeroDeDocumento", column=@Column(name = "numero_documento_factura_encabezado")),
@AttributeOverride(name="numeroDeControl", column=@Column(name = "numero_de_control_factura_encabezado")),
@AttributeOverride(name="fechaDeDocumento", column=@Column(name = "fecha_factura_encabezado")),
@AttributeOverride(name="fechaDeSistema", column=@Column(name = "fecha_del_sistema_factura_encabezado")),
@AttributeOverride(name="serialImpresora", column=@Column(name = "serial_impresora_factura_encabezado")),
@AttributeOverride(name="numeroDeReporteZ", column=@Column(name = "numero_reporte_z_factura_encabezado"))
})
public class Factura extends Ticket implements Serializable
{
//resto de código
}
Así es como están quedando los campos en la base de datos
facturas_encabezado
(
id_factura_encabezado serial NOT NULL,
fecha_factura_encabezado timestamp without time zone,
fecha_del_sistema_factura_encabezado date,
numero_de_control_factura_encabezado integer,
numero_documento_factura_encabezado integer,
--cambio de longitudes de campo
numero_reporte_z_factura_encabezado character varying(255),
serial_impresora_factura_encabezado character varying(255),
serie_factura_encabezado character varying(255),
--cambia el nombre del campo
cajero_id_empleado_caja integer,--resto de código
)