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