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

Java EE, problema al insertar dato con JSON

Estas en el tema de Java EE, problema al insertar dato con JSON en el foro de Java en Foros del Web. 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, ...
  #1 (permalink)  
Antiguo 27/12/2015, 09:25
 
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;
	}
	
	
}

Etiquetas: clase, dato, json, 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 04:38.