1
Iデータベースからbyte[]
画像を読み取るしようとしていorg.hibernate.MappingException:列の型を判別できませんでした:[org.hibernate.mapping.Column(imageService)] "}}
これが最初です。
@Entity
public class ReceivingInspection implements Serializable {
/**
* The id.
*/
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="RECEIVING_INSPECTION_ID")
private int id;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, mappedBy = "receivingInspection")
private List<ReceivingInspectionImage> receivingInspectionImages;
// Constructors, getters, setters
}
そして、これは私の第二の実体である:
@Entity
public class ReceivingInspectionImage implements Serializable {
@EJB
private ImageService imageService;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="RECEIVING_INSPECTION_IMAGE_ID")
private int id;
@Lob @Basic(fetch = FetchType.LAZY)
@Column(length=16777000)
private byte[] image;
@ManyToOne(fetch = FetchType.LAZY)
private ReceivingInspection receivingInspection;
public byte[] getImage() {
return imageService.getImage(id);
}
// Constructors, getters, setters
}
は、これが私のDAOです:
私の2つのエンティティの以下のために、ReceivingInspectionImage:org.hibernate.MappingException:テーブルで、my.application.util.ImageService:のためのタイプを判断できませんでした私は自分のアプリケーションを配備しようとしていた場合
@PersistenceContext private EntityManager em; public byte[] getImage(int id) { Query query = em .createNativeQuery("SELECT * FROM RECEIVINGINSPECTIONIMAGE WHERE RECEIVING_INSPECTION_IMAGE_ID = ?"); query.setParameter(1, id); ReceivingInspectionImage image = (ReceivingInspectionImage) query.getSingleResult(); return image.getImage(); }
、私が取得しますカラム:[org.hibernate.mapping.Column(imageService)] "}}
何が原因ですか?私はHibernateマッピングを使用している方法で間違いがありますか?
例外は文字通り有効なデータベース列として 'ReceivingInspectionImage'エンティティの' imageService'フィールドを認識しないと言います。なぜエンティティにEJBを注入していますか? – BalusC