2011-01-18 3 views
0

Il s'agit d'un problème que j'ai rencontré et j'ai essayé la plupart des solutions qui m'ont été proposées jusqu'à présent et le fonctionnement de cette solution est plus difficile à résoudre que la session d'hibernation imprime ses détails dans le journal me fournissant très peu en termes de suivi des erreurs. Je veux télécharger une chaîne de Json convertie en un blob dans la base de données. Si quelqu'un sait où je me trompe ou si je peux fournir des conseils, ce serait génial si je n'arrive pas à résoudre cela seul.Stockage BLOB dans la base de données Spring Hibernate Persistence

@Entity 
@Table(name="workout") 
public class Workout implements Serializable{ 


    private static Logger logger = Logger.getLogger(Workout.class); 


    @Id 
    @Column(name="workout_id") 
    private int workout_id; 

    @Column(name="username") 
    private String username; 

    @Column(name="added_date") 
    private String added_date; 

    @Lob 
    @Column(name="workout") 
    Blob workout; 

    public int getWorkout_id() { 
     return workout_id; 
    } 

    public void setWorkout_id(int workout_id) { 
     this.workout_id = workout_id; 
    } 

    public String getUsername() { 
     return username; 
    } 

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

    public String getAdded_date() { 
     return added_date; 
    } 

    public void setAdded_date(String added_date) { 
     this.added_date = added_date; 
    } 

    public Blob getWorkout() { 
     return workout; 
    } 

    public void setWorkout(Blob workout) { 
     this.workout = workout; 
    } 


    } 
méthode

service que de télécharger trys

public String uploadWorkout(String json){ 
    Workout w = new Workout(); 
    w.setUsername("cmac458"); 
    DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 
    Date date = new Date(); 
    w.setAdded_date(date.toGMTString()); 
    w.setWorkout(getBLOBfromJSON(json)); 
    w.setWorkout_id(4); 
    workoutDao.getSession().save(w); 
    return "done"; 

    } 

J'utilise le hibernatetemplate.save de base (entité) qui fonctionne dans d'autres parties de mon application.

Toute aide ici est très appréciée. Merci Chris

Répondre

2

J'utilise byte[] à la place ob Blob type, et cela fonctionne très bien.

@Lob 
@Column(nullable = false, length = 2097152) 
private byte[] data; 
Questions connexes