I have three entity beans; one Audit contains many AuditImage, one AuditImage 
contains one AuditLargeImage .

Audit to AuditImage is eagerly loaded, AuditImage to AuditLargeImage is lazily 
loaded.

I can sucessfully upload images to the database (MySQL) but when I load 
(manager.find) the Audit, the servers memory usage jumps to over 1GB! Despite 
total image size being only 5mb


  | @Entity(name = "Audit")
  | public class Audit {
  | 
  | private Set<AuditImage> image;
  |  
  |  @OneToMany(cascade = {CascadeType.ALL}, fetch = FetchType.EAGER)
  |  public Set<AuditImage> getImages() {
  |   if (image == null)
  |    image = new HashSet<AuditImage>();
  |   return image;
  |  }
  |  
  |  public void setImages(Set<AuditImage> image) {
  |   this.image = image;
  |  }
  | }
  | 
  | }
  | 


  | @Entity
  | @Table(name = "auditimage")
  | public class AuditImage {
  |  
  |  private int id;
  |  
  |  @Id
  |  @GeneratedValue(strategy = GenerationType.AUTO)
  |  public int getId() {
  |   return id;
  |  }
  |  
  |  public void setId(int id) {
  |   this.id = id;
  |  }
  |  
  |  private String imageName;
  |  
  |  private byte[] imageThumb;
  |  
  | private AuditLargeImage imageLarge;
  |  
  |  @Lob
  |  @Column(columnDefinition = "BLOB")
  |  public byte[] getImageThumb() {
  |   return imageThumb;
  |  }
  |  
  |  public void setImageThumb(byte[] imageThumb) {
  |   this.imageThumb = imageThumb;
  |  }
  |  
  |  public String getImageName() {
  |   return imageName;
  |  }
  |  
  |  public void setImageName(String imageName) {
  |   this.imageName = imageName;
  |  }
  |  
  | @OneToOne(cascade = {CascadeType.ALL}, fetch = FetchType.LAZY)
  |  public AuditLargeImage getImageLarge() {
  |   return imageLarge;
  |  }
  |  
  |  public void setImageLarge(AuditLargeImage imageLarge) {
  |   this.imageLarge = imageLarge;
  |  }
  | }
  | 


  | @Entity
  | public class AuditLargeImage {
  |  private int id;
  |  
  |  @Id
  |  @GeneratedValue(strategy = GenerationType.AUTO)
  |  public int getId() {
  |   return id;
  |  }
  |  
  |  public void setId(int id) {
  |   this.id = id;
  |  }
  |  
  |  private byte[] imageFull;
  |  
  |  @Lob
  |  @Column(columnDefinition = "MEDIUMBLOB")
  |  public byte[] getImageFull() {
  |   return imageFull;
  |  }
  |  
  |  public void setImageFull(byte[] imageFull) {
  |   this.imageFull = imageFull;
  |  }
  |  
  | }
  | 
  | 

Am currently using JBOSS 4.05 GA, Hibernate 3.2.1 with the latest mysql jdbc 
connector (5.0.4).

Even if I remove all references to AuditLargeImage (as in disregard it from the 
test) I still have the same problem...

Your comments appreciated. Thanks

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3991995#3991995

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3991995
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to