Я пытаюсь получить записи таблицы в классе Java Entity, где один столбец определен как CLOB. когда я выполняю свой запрос выбора, я получаю следующую ошибку: -
[EclipseLink-3002] (Eclipse Persistence Services — классификатор 2.6.2): ошибка org.eclipse.persistence.exceptions.ConversionException.
Ниже приведены подробности кода..........
В базе данных у меня есть столбец CLOB. Я выполняю запрос выбора на Entity. Ниже подробно.
В таблице базы данных столбец MSG определяется как CLOB.
Мой класс Entity ниже.
@Entity
@Table( name = "MyTable", schema="TEST" )
@NamedQueries({
@NamedQuery( name = "MyTable.findByChangeKey", query = "SELECT t FROM MyTable t WHERE t.changeKey = :changeKey)
} )
public class MyTable implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic( optional = false )
@Column( name = "ID", nullable = false )
private Integer msgId;
@Basic( optional = false )
@Column( name = "CHANGE_KEY", nullable = false, length = 15 )
private String changeKey;
@Column( name = "MSG")
@Lob
private byte[] msg;
public Tsmtidsm() {
}
public byte[] getMsg() {
if(msg!=null)
{
return (byte[])msg.clone();
}
else
{
return msg;
}
}
public void setMsg( byte[] msg ) {
if(msg!=null)
{
this.msg = (byte[])msg.clone();
}
else
{
this.msg=null;
}
}
public Tsmtidsm( Integer msgId ) {
this.msgId = msgId;
}
public Integer getMsgId() {
return msgId;
}
public void setMsgId( Integer msgId ) {
this.msgId = msgId;
}
public String getChangeKey() {
return changeKey;
}
public void setChangeKey( String changeKey ) {
this.changeKey = changeKey;
}
}
и ниже приведена строка кода, в которой я вызываю мой запрос на выбор
Query searchQuery = em.createNamedQuery( "MyTable.findByChangeKey" );
searchQuery.setParameter("changeKey", serialNumber );
List<MyTable> myTable=(List<MyTable>)searchQuery.getResultList();
Я получаю следующую ошибку при выполнении кода выше.
Caused by: Exception [EclipseLink-3002] (Eclipse Persistence Services - 2.6.2.qualifier): org.eclipse.persistence.exceptions.ConversionException
Exception Description: The object [[B@2b2d02e5], of class [class java.lang.String], from mapping [org.eclipse.persistence.mappings.DirectToFieldMapping[msg-->TEST.MyTable.MSG]] with descriptor [RelationalDescriptor(com.dao.data.MyTable--> [DatabaseTable(TEST.MyTable)])], could not be converted to [class [B].
at org.eclipse.persistence.exceptions.ConversionException.couldNotConvertToByteArray(ConversionException.java:115)
Пожалуйста, помогите, я не уверен, что не так в приведенном выше коде, может ли кто-нибудь помочь мне здесь? Заранее спасибо!!