insertar llaves foraneas usando entity clases from database
Acudo a ustedes para ver si me pueden ayudar con este problema , tengo dos tablas relacionadas factura y cliente estas se relacionan por medio de un campo llamado cuenta, ahora bien en java creo una clase haciendo uso de la opcion " entity clases from database" esta clase para el campo cuenta me lo mapea de la siguiente forma
Ahora bien mi clase que se encarga de llenar la tabla factura hace lo siguiente:
datos.setFolioF(folio);
datos.setFEmision(fecha);
Y aqui viene el problema cuando quiero insertar el valor del campo cuenta("en la base de datos es tipo serial") en vez de pedirme un int, me pide un tipo de dato de la clase cliente("en esta clase se encuentra el campo cuenta"), a que se debe esto? como podria insertar el campo cuenta?
A grandes rasgos las clases involucradas son estas , omitiré los get y set para que el post no se haga muy largo,
cliente:
@Table(name = "cliente")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Cliente.findAll", query = "SELECT c FROM Cliente c"),
@NamedQuery(name = "Cliente.findByCuenta", query = "SELECT c FROM Cliente c WHERE c.cuenta = :cuenta"),
@NamedQuery(name = "Cliente.findByNombreCliente", query = "SELECT c FROM Cliente c WHERE c.nombreCliente = :nombreCliente"),
@NamedQuery(name = "Cliente.findByApptCliente", query = "SELECT c FROM Cliente c WHERE c.apptCliente = :apptCliente"),
@NamedQuery(name = "Cliente.findByApmtCliente", query = "SELECT c FROM Cliente c WHERE c.apmtCliente = :apmtCliente"),
@NamedQuery(name = "Cliente.findByDomicilio", query = "SELECT c FROM Cliente c WHERE c.domicilio = :domicilio")})
public class Cliente implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "cuenta")
private Integer cuenta;
@Size(max = 30)
@Column(name = "nombre_cliente")
private String nombreCliente;
@Size(max = 30)
@Column(name = "appt_cliente")
private String apptCliente;
@Size(max = 30)
@Column(name = "apmt_cliente")
private String apmtCliente;
@Size(max = 90)
@Column(name = "domicilio")
private String domicilio;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "cliente")
private Collection<Factura> facturaCollection;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "cliente")
private Collection<Historico> historicoCollection;
public Cliente() {
}
public Cliente(Integer cuenta) {
this.cuenta = cuenta;
}
.....
Factura:
@Table(name = "factura")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Factura.findAll", query = "SELECT f FROM Factura f"),
@NamedQuery(name = "Factura.findByFolioF", query = "SELECT f FROM Factura f WHERE f.folioF = :folioF"),
@NamedQuery(name = "Factura.findByFEmision", query = "SELECT f FROM Factura f WHERE f.fEmision = :fEmision"),
@NamedQuery(name = "Factura.findByCuenta", query = "SELECT f FROM Factura f WHERE f.facturaPK.cuenta = :cuenta"),
@NamedQuery(name = "Factura.findByConsecutivoF", query = "SELECT f FROM Factura f WHERE f.facturaPK.consecutivoF = :consecutivoF")})
public class Factura implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
protected FacturaPK facturaPK;
@Size(max = 10)
@Column(name = "folio_f")
private String folioF;
@Column(name = "f_emision")
@Temporal(TemporalType.TIMESTAMP)
private Date fEmision;
@JoinColumn(name = "cuenta", referencedColumnName = "cuenta", insertable = false, updatable = false)
@ManyToOne(optional = false)
private Cliente cliente;
public Factura() {
}
public Factura(FacturaPK facturaPK) {
this.facturaPK = facturaPK;
}
public Factura(int cuenta, int consecutivoF) {
this.facturaPK = new FacturaPK(cuenta, consecutivoF);
}
-........
- Inicie sesión o regístrese para enviar comentarios
Comentarios recientes
hace 2 semanas 15 horas
hace 6 semanas 1 día
hace 13 semanas 4 días
hace 21 semanas 5 días
hace 24 semanas 2 días
hace 25 semanas 6 días
hace 29 semanas 1 día
hace 29 semanas 1 día
hace 35 semanas 23 horas
hace 36 semanas 1 día