Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/12/2015, 09:25
clupin
 
Fecha de Ingreso: septiembre-2015
Mensajes: 6
Antigüedad: 8 años, 7 meses
Puntos: 0
Pregunta Java EE, problema al insertar dato con JSON

Hola, estoy haciendo un proyecto con Java EE (en un servidor glassfish), estoy utilizando POSTMAN para enviar los JSON y realizar las consultas (GET, POST, PUT), el problema es cuando quiero agregar a una tabla que tiene una Foreign_key, me aparece el siguiente error:
Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityCons traintViolationException: Cannot add or update a child row: a foreign key constraint fails (`oferfast`.`oferta`, CONSTRAINT `fk_Oferta_Usuario` FOREIGN KEY (`usuario_id`) REFERENCES `usuario` (`usuario_id`) ON DELETE NO ACTION ON UPDATE NO ACTION)
Error Code: 1452


El JSON que envio es el siguiente:
Código:
{
	"title": "title_1",
	"description": "description_1",
	"ubication_lon":10,
	"ubication_lat":20,
	"price":1000,
	"images_number":0,
	"visible_oferta":1,
	"usuario_id": 1
}
El usuario con id 1 si existe en la base de datos, por cierto, los codigos de las clases los dejo acá abajo:

Clase Usuario:
Código:
@Entity
@Table(name="usuario")
@NamedQuery(name="Usuario.findAll", query="SELECT u FROM Usuario u")
public class Usuario {
	private static final long serialVersionUID = 1L;

	@Id
	@Column(name="usuario_id", unique=true, nullable=false)
	private int usuarioId;

	@Column(name="username", nullable=false, length=45)
	private String username;

	@Column(name="password", nullable=false, length=45)
	private String password;

	@Column(name="email", nullable=false, length=45)
	private String email;

	@Column(name="type", nullable=false)
	private int type;

	@Column(name="reputation", nullable=false)
	private int reputation;

	@Column(name="permission", nullable=false)
	private int permission;

	@Column(name="url_profile_picture", nullable=false, length=255)
	private String url_profile_picture;

	@Column(name="url_profile_thumbnail", nullable=false, length=255)
	private String url_profile_thumbnail;

	@Column(name="visible_usuario", nullable=false)
	private int visibleUsuario;
	
	@OneToMany(mappedBy="usuario")
	private List<Oferta> ofertas;

	public Usuario() {
	}

	public int getUsuarioId() {
		return usuarioId;
	}

	public void setUsuarioId(int usuarioId) {
		this.usuarioId = usuarioId;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public int getType() {
		return type;
	}

	public void setType(int type) {
		this.type = type;
	}

	public int getReputation() {
		return reputation;
	}

	public void setReputation(int reputation) {
		this.reputation = reputation;
	}

	public int getPermission() {
		return permission;
	}

	public void setPermission(int permission) {
		this.permission = permission;
	}

	public String getUrl_profile_picture() {
		return url_profile_picture;
	}

	public void setUrl_profile_picture(String url_profile_picture) {
		this.url_profile_picture = url_profile_picture;
	}

	public String getUrl_profile_thumbnail() {
		return url_profile_thumbnail;
	}

	public void setUrl_profile_thumbnail(String url_profile_thumbnail) {
		this.url_profile_thumbnail = url_profile_thumbnail;
	}

	public int isVisibleUsuario() {
		return visibleUsuario;
	}

	public void setVisibleUsuario(int visibleUsuario) {
		this.visibleUsuario = visibleUsuario;
	}

	public void setOfertas(List<Oferta> ofertas) {
		this.ofertas = ofertas;
	}

	public List<Oferta> getOfertas() {
		return this.ofertas;
	}

	public Oferta addListaOfertas(Oferta laOferta) {
		getOfertas().add(laOferta);
		laOferta.setUsuario(this);

		return laOferta;
	}

	public Oferta removeOfertas(Oferta laOferta) {
		getOfertas().remove(laOferta);
		laOferta.setUsuario(null);

		return laOferta;
	}

	
}
Clase Oferta:
Código:
@Entity
@Table(name="oferta")
@NamedQuery(name="Oferta.findAll", query="SELECT o FROM Oferta o")
public class Oferta implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@Column(name="oferta_id", unique=true, nullable=false)
	private int ofertaId;
	
	@Column(name="usuario_id", nullable=false)
	private int usuarioId;

	@Column(name="title", nullable=false, length=100)
	private String title;

	@Column(name="description", nullable=false, length=500)
	private String description;
	
	@Column(name="price", nullable=false)
	private int price;
	
	@Column(name="ubication_lon")
	private Double ubicacionLon;
	
	@Column(name="ubication_lat")
	private Double ubicacionLat;
	
	@Column(name="images_number", nullable=false)
	private int imagesNumber;

	@Column(name="date", nullable=false)
	private Timestamp date;

	@Column(name="visible_oferta", nullable=false)
	private boolean visibleOferta;
	
	@OneToMany(mappedBy="oferta")
	private List<OfertaHasEtiqueta> listaEtiquetas;
	
	@OneToMany(mappedBy="oferta")
	private List<ImagenOferta> listaImagenes;
	
	@ManyToOne
	@PrimaryKeyJoinColumn(name="usuario_id")
	private Usuario usuario;

	public Oferta() {
	}

	public int getOfertaId() {
		return ofertaId;
	}

	public void setOfertaId(int ofertaId) {
		this.ofertaId = ofertaId;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}

	public int getPrice() {
		return price;
	}

	public void setPrice(int price) {
		this.price = price;
	}

	public Double getUbicacionLon() {
		return ubicacionLon;
	}

	public void setUbicacionLon(Double ubicacionLon) {
		this.ubicacionLon = ubicacionLon;
	}

	public Double getUbicacionLat() {
		return ubicacionLat;
	}

	public void setUbicacionLat(Double ubicacionLat) {
		this.ubicacionLat = ubicacionLat;
	}

	public int getImagesNumber() {
		return imagesNumber;
	}

	public void setImagesNumber(int imagesNumber) {
		this.imagesNumber = imagesNumber;
	}

	public Timestamp getDate() {
		return date;
	}

	public void setDate(Timestamp date) {
		this.date = date;
	}

	public int getUsuarioId() {
		return usuarioId;
	}

	public void setUsuarioId(int usuarioId) {
		this.usuarioId = usuarioId;
	}

	public boolean isVisibleOferta() {
		return visibleOferta;
	}

	public void setVisibleOferta(boolean visibleOferta) {
		this.visibleOferta = visibleOferta;
	}

	public List<ImagenOferta> getListaImagenes() {
		return this.listaImagenes;
	}

	public void setListaImagenes(List<ImagenOferta> listaImagenes) {
		this.listaImagenes = listaImagenes;
	}

	public ImagenOferta addListaImagenes(ImagenOferta laImagenOferta) {
		getListaImagenes().add(laImagenOferta);
		laImagenOferta.setOferta(this);

		return laImagenOferta;
	}

	public ImagenOferta removeListaImagenes(ImagenOferta laImagenOferta) {
		getListaImagenes().remove(laImagenOferta);
		laImagenOferta.setOferta(null);

		return laImagenOferta;
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	public List<OfertaHasEtiqueta> getListaEtiquetas() {
		return listaEtiquetas;
	}

	public void setListaEtiquetas(List<OfertaHasEtiqueta> listaEtiquetas) {
		this.listaEtiquetas = listaEtiquetas;
	}

	public OfertaHasEtiqueta addListaEtiquetas(OfertaHasEtiqueta laOfertaHasEtiqueta) {
		getListaEtiquetas().add(laOfertaHasEtiqueta);
		laOfertaHasEtiqueta.setOferta(this);

		return laOfertaHasEtiqueta;
	}

	public OfertaHasEtiqueta removeListaEtiquetas(OfertaHasEtiqueta laOfertaHasEtiqueta) {
		getListaEtiquetas().remove(laOfertaHasEtiqueta);
		laOfertaHasEtiqueta.setOferta(null);

		return laOfertaHasEtiqueta;
	}
	
	
	
	

	public List<Etiqueta> getListaSoloEtiquetas() {
		List<Etiqueta> listaAux = new ArrayList<Etiqueta>();
		for(int i=0; i<getListaEtiquetas().size(); i++){
			listaAux.add(getListaEtiquetas().get(i).getEtiqueta());
		}
		return listaAux;
	}
	
	
	

	public static long getSerialversionuid() {
		return serialVersionUID;
	}
	
	
}