Хранение BLOB в базе данных Spring Hibernate Persistence - PullRequest
0 голосов
/ 18 января 2011

Это проблема, с которой я столкнулся и перепробовал большинство решений, которые мне предлагались до сих пор, и, похоже, мало что работает, проблема, усложняющая решение этой проблемы, заключается в том, что по какой-то причине сеанс гибернации не печатает свои данные в журнале, предоставляямне очень мало с точки зрения отслеживания ошибок.Я хочу загрузить строку базы данных Json, преобразованную в BLOB-объект, в базу данных.Если кто-то знает, где я иду не так или могу предоставить и указатели, это было бы здорово, так как я изо всех сил пытаюсь решить это один.

@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;
    }


    }

метод из Службы, который пытается загрузить

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";

    }

Я использую базовый hibernatetemplate.save (entity), который работает в других частях моего приложения.

Любая помощь здесь очень ценится.Спасибо Крис

1 Ответ

2 голосов
/ 18 января 2011

Я использую byte[] вместо ob Blob type, и это прекрасно работает.

@Lob
@Column(nullable = false, length = 2097152)
private byte[] data;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...