Foros del Web » Programación para mayores de 30 ;) » Java »

Problema Java Netbeans y Base de datos

Estas en el tema de Problema Java Netbeans y Base de datos en el foro de Java en Foros del Web. Hola, Buscando soluciones a un problema que tengo, he llegado a esta web y espero que podáis ayudarme a pesad de ser nuevo. Os cuento ...
  #1 (permalink)  
Antiguo 04/01/2012, 10:26
 
Fecha de Ingreso: enero-2012
Mensajes: 1
Antigüedad: 12 años, 3 meses
Puntos: 0
Problema Java Netbeans y Base de datos

Hola,
Buscando soluciones a un problema que tengo, he llegado a esta web y espero que podáis ayudarme a pesad de ser nuevo.
Os cuento el problema que tengo lo más detalladamente posible que pueda, a ver si alguien consigue ayudarme.
Estoy creando un programa en java con netbeans y tengo un problema con la base de datos.
Tengo varias clases, dos en las que me da el problema son estas:

@Entity
@Table (name="Cancion")
public class Cancion implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private long id;
@Column (name="Nombre")
String nombre;
@Column (name="Duracion")
private double duracion;
@Column (name="Anio")
private int anio;
@ManyToOne
private Interprete mInterpreteCancion;
@ManyToOne
private Album mAlbum;

y

@Entity
@Table (name="Interprete")
public class Interprete implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private long id;
@OneToMany(cascade=CascadeType.REMOVE,mappedBy = "mInterpreteCancion")
private List<Cancion> mCanciones;
@OneToMany(cascade=CascadeType.REMOVE, mappedBy = "mInterpretePrincipal")
private List<Album> mAlbumes;
@Column (name="Nombre")
private String nombre;
@Column (name="Anio")
private int Anio;
@Column (name= "Tipo")
private String tipo;

Cuando añado a la base de datos un interprete con UNA canción o SIN canciones puedo borrarlo sin problemas, el problema está al meterle más de una canción o album(que tiene la misma estructura)

@Entity
@Table (name="Album")
public class Album implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private long id;
private int anio;
private String nombre;
@OneToMany(cascade=CascadeType.REMOVE, mappedBy = "mAlbum")
private List<Cancion> mCanciones;
@ManyToOne
private Interprete mInterpretePrincipal;

Está echo con persistencia.
Cuando quiero borrar uno que tenga más de una canción me da este fallo:

javax.persistence.RollbackException: Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.DatabaseExcep tion
Internal Exception: java.sql.SQLIntegrityConstraintViolationException: DELETE en la tabla 'INTERPRETE' ha causado una violación de restricción de clave foránea 'CNCNMNTRPRTCNCONID' para la clave (3). La sentencia se ha retrotraído.
Error Code: -1
Call: DELETE FROM Interprete WHERE (ID = ?)
bind => [3]

Y muchas líneas más…
Si lo dejo al intérprete con una sola canción, lo borra sin problemas.
Alguien sabe dónde está el fallo???

Subo el proyecto completo por si alguien necesita más datos.
http://www.megaupload.com/?d=0NOD1E0Y
Llevo un tiempo buscando la solución, pero no consigo saber que falla, por eso pregunto aquí.
Muchas gracias a todos.
  #2 (permalink)  
Antiguo 06/01/2012, 21:11
Avatar de sivadmp  
Fecha de Ingreso: febrero-2011
Ubicación: La Paz - Bolivia
Mensajes: 293
Antigüedad: 13 años, 2 meses
Puntos: 20
Respuesta: Problema Java Netbeans y Base de datos

hola tu problema es por el mapeo, tienes que utilizar Cascade ALL y FetchType,LAZY

SALUDOS
__________________
agradecer no cuesta nada
Entre más información proporciones más fácil será ayudarte, y asi evitar adivinar el problema con el que cuentas.

Etiquetas: clase, netbeans, sql, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:55.