хранить объекты из сторонней библиотеки в базе данных Hibernate - PullRequest
0 голосов
/ 11 июня 2018

До того, как я начну, у меня нет особого опыта в спящем режиме.Я работаю над приложением, в котором я использую библиотеку моих коллег для отображения некоторых данных.Есть записи объектов, которые я хочу сохранить в своей базе данных, поэтому мне не нужно создавать их каждый раз, когда я использую определенную функцию.Я хотел бы прочитать их из базы данных.Сначала я попытался сделать это так:

@Entity
public class RecordingEntity
{
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @Lob
    @Column(name = "recording")
    private Recording recording;

    @ManyToOne
    @Column(name = "user")
    private User user;

    public RecordingEntity(Recording recording, User user)
    {
        this.recording = recording;
        this.user = user;
    }

    public Recording getRecording()
    {
        return recording;
    }

    public Long getId()
    {
        return id;
    }

    public void setRecording(Recording recording)
    {
        this.recording = recording;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getUser()
    {
        return user;
    }

    public void setUser(User user)
    {
        this.user = user;
    }
}

public class ImportRecording()
{
        ...
        try
        {
            TapestryDBConnection.performAtomic(new DBAtomicRunnable()
            {
                @Override
                public void run(Session session) throws InterruptedException, IOException, SerialException, SQLException
                {
                    ...
                    RecordingEntity recordingEntity = new RecordingEntity(recording);
                    session.saveOrUpdate(recordingEntity);
                    ...
                }
            }, true);
        }
    return null;
}

Это привело бы к: java.lang.ClassCastException: Recording cannot be cast to java.sql.Blob

Затем я попытался сделать это без @Lob и получил: org.hibernate.MappingException: Could not determine type for: Recording, at table: RecordingEntity, for columns: [org.hibernate.mapping.Column(recording)]

РЕДАКТИРОВАТЬ:

Я пытался сохранить объект путем преобразования их в байт [] и сохранения байта [] в базе данных.К сожалению, это невозможно, если класс записи не реализует интерфейс Serializable.Я бы предпочел решить эту проблему без реализации Serializable.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...