Oracle ORDImage和EclipseLink ||过冬

时间:2013-05-09 15:32:22

标签: oracle hibernate orm jpa-2.0 eclipselink

我正在尝试在Java EE + OracleDB应用程序中使用EclipseLink创建ORM。问题是我不知道如何从数据库中映射ORDImage类型。我尝试使用@Struct但没有成功。

我创建了两个@Struct结构:

@Embeddable
@Struct(name = "ORDSource", fields = {"localData", "srcType", "srcLocation", "srcName", "updateTime", "local"})
public class OrdSourceStruct implements Serializable {
    private static final long serialVersionUID = 1L;

    @Lob
    @Basic
    @Column(name = "localData")
    private byte[] localData;
    @Column(name = "srcType")
    private String srcType;
    @Column(name = "srcLocation")
    private String srcLocation;
    @Column(name = "srcName")
    private String srcName;
    @Column(name = "updateTime")
    @Temporal(TemporalType.DATE)
    private Date updateTime;
    @Column(name = "local")
    private short sLocal;

    //getters and setters
    .......
}

第二个:

@Struct(name = "ORDImage", fields = {"source", "height", "width", "contentLength", "compressionFormat", "mimeType"})
public class OrdImageStruct implements Serializable {
    private static final long serialVersionUID = 1L;

    @Column(name = "source")
    private OrdSourceStruct source;
    @Column(name = "height")
    private Integer height;
    @Column(name = "width")
    private Integer width;
    @Column(name = "contentLength")
    private Integer contentLength;
    @Column(name = "fileFormat")
    private String fileFormat;
    @Column(name = "contentFormat")
    private String contentFormat;
    @Column(name = "compressionFormat")
    private String compressionFormat;
    @Column(name = "mimeType")
    private String mimeType;

    //getters and setters
    ...........
}

然后我尝试在实体中使用它们:

@Entity
@Table(name = "ZDJECIA")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Zdjecia.findAll", query = "SELECT z FROM Zdjecia z"),
    @NamedQuery(name = "Zdjecia.findById", query = "SELECT z FROM Zdjecia z WHERE z.id = :id")})
public class Zdjecia implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @NotNull
    @Column(name = "ID")
    private Short id;
    @Column(name = "ZDJECIE")
    private OrdImageStruct zdjecie;
    @JoinColumn(name = "GRZYB", referencedColumnName = "ID")
    @ManyToOne(optional = false)
    private Grzyby grzyb;

    //getters and setters
    ...........
}

但是当我尝试从OrdImageStruct类型显示一些数据时的结果是:

Exception Description: The object [[Ljava.lang.Object;@2921ef9], of class [class
[Ljava.lang.Object;], from mapping 
[org.eclipse.persistence.mappings.DirectToFieldMapping[zdjecie-->ZDJECIA.ZDJECIE]] 
with descriptor [RelationalDescriptor(com.rmsbd.entities.Zdjecia --> 
[DatabaseTable(ZDJECIA)])], could not be converted to [class [B].

我做错了什么?有没有其他好的方法来映射ORDImage?我想我可以处理任何其他ORM解决方案,因此它不必是EclipseLink。对我来说最重要的是将这些ORDImage数据从数据库中提取到我的应用程序中。

0 个答案:

没有答案
相关问题