画像を blob ファイルとしてデータストアに保存したいと考えています。JPA を使用してオブジェクトのモジュール クラスを作成しました。
@XmlRootElement
@Entity
public class PotholeMedia {
@Id
@GeneratedValue (strategy = GenerationType.IDENTITY)
private Long pothole_media_id;
private int pothole_Id;
private Blob image;
//Default constructor
public PotholeMedia (){}
//Overloaded constructor
public PotholeMedia(Long pothole_media_id, int pothole_Id, Blob image)
{
super();
this.pothole_media_id = pothole_media_id;
this.pothole_Id = pothole_Id;
this.image = image;
}//end constructor
/**
* Gets pothole_media_id attribute
* @return Long
*/
public Long getPotholeMediaId()
{
return pothole_media_id;
}//end getPotholeId method
/**
* Sets pothole_media_id attribute
* @param pothole_media_id
*/
public void setPotholeMediaId(Long pothole_media_id)
{
this.pothole_media_id = pothole_media_id;
}//end getPotholeMedia method
/**
* Get pothole_id attribute
* @return
*/
public int getPotholeId()
{
return pothole_Id;
}//end getPotholeId method
/**
* Set pothole_id attribute
* @param pothole_Id
*/
public void setPotholeId(int pothole_Id)
{
this.pothole_Id = pothole_Id;
}//end setPotholeId method
/**
* Get image attribute
* @return Blob
*/
public Blob getImage()
{
return image;
}//end getImage method
/**
* Set image attribute
* @param image
*/
public void setImage(Blob image)
{
this.image = image;
}//end setImage method
}//end PotholeMedia class
私の問題は、ジャージーを使用してこれを保存する方法がわからないことです。これは私がこれまでに試したことです。
@POST
@Path ("/save/image")
@Consumes (MediaType.MULTIPART_FORM_DATA)
public Response saveImg (@FormParam ("file") PotholeMedia media)
{
try
{
EntityManager manager = EMF.getInstance().createEntityManager();
manager.getTransaction().begin();
manager.persist(media);
manager.getTransaction().commit();
return Response.status(Status.OK).build ();
}
catch (Exception e)
{
return Response.status(Status.INTERNAL_SERVER_ERROR).build ();
}
}//end saveImg method
これはオブジェクトを保存する正しい方法ですか、そうでない場合はどうすればよいですか。