Capitulo 5 AYUDA Stereotype "IMAG...

2012-09-10
2012-11-26
  • Julio Fortti

    Julio Fortti - 2012-09-10

    El codigo de la clase Product quedo:

    package org.openxava.invoicing.model;

    import java.math.*;

    import javax.persistence.*;

    import org.openxava.annotations.*;

    @Entity
    public class Product {
    @Id @Column(length=9)
    private int number;
    @Column(length=50) @Required
    private String description;

    @ManyToOne(
    fetch=FetchType.LAZY ,
    optional=true)
    @DescriptionsList
    private Category category;
    @Stereotype("MONEY") // La propiedad price se usa para almacenar dinero
    private BigDecimal price; // BigDecimal se suele usar para dinero
    @Stereotype("PHOTO") // El usuario puede ver y cambiar una foto
    private byte  photo;
    @Stereotype("IMAGES_GALLERY") // Una galería de fotos completa está disponible
    @Column(length=32) // La cadena de 32 de longitud es para almacenar la clave de la galería
    private String morePhotos;
    @Stereotype("MEMO") // Esto es para un texto grande, se usará un área de texto o equivalente
    private String remarks;

    public int getNumber() {
    return number;
    }
    public void setNumber(int number) {
    this.number = number;
    }
        public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
    this.description = description;
    }
    public Category getCategory(){
    return category;
    }
    public void setCategory(Category cat){
    this.category=cat;
    }
    public BigDecimal getPrice(){
    return price;
    }
    public void setPrice(BigDecimal pr){
    this.price=pr;
    }
    public byte  getFoto(){
    return photo;
    }
    public void setFoto(byte  ph){
    this.photo=ph;
    }
    public String getMorePhotos(){
    return morePhotos;
    }
    public void setMorePhotos(String mp){
    this.morePhotos=mp;
    }
    public String getRemarks(){
    return remarks;
    }
    public void setRemarks(String r){
    this.remarks=r;
    }
    Cuando lo pruebo desde el browser, en foto me aparece un , mensaje en color rojo que dice :
    "Editor no disponible "
    Cuando intento abrir el editor de imagenes para cargar imagenes me aparece un mensaje en rojo:
         
    ERROR: No existe un editor web apto para la propiedad Product.view.foto

    y en la consola la tarza muestra:

    SEVERE: Fallo al ejecutar SELECT e.number, e.number, e.description, e.price, e.morePhotos, e.remarks, e.foto from Product e
    java.lang.IllegalArgumentException: org.hibernate.QueryException: could not resolve property: foto of: org.openxava.invoicing.model.Product
    at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1376)
    at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1317)
    }
     

     
  • Javier Paniza

    Javier Paniza - 2012-09-12

    Hola Julio,

    los setters y getters para photo están mal escritos, tu has escrito:

    public byte [] getFoto(){
            return photo;
    }
    public void setFoto(byte [] ph){
            this.photo=ph;
    }
    

    Cuando debería haber sido:

    public byte [] getPhoto(){
            return photo;
    }
    public void setPhoto(byte [] ph){
            this.photo=ph;
    }
    

    Es decir photo y no foto. Usa el asistente de Eclipse para generar los getters y setters y evitarás estos problemas.

    -------
    Ayuda a otros en este foro como yo te ayudo a ti.
    Antes de poner una pregunta busca en este mismo foro la respuesta
    y lee la documentación de OpenXava en openxava.org.

     

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks