数据库bytes java获取_java – 使用jpa从postgres读取byte []时获得的...

我有一个Image类,它有一个byte []来包含实际的图像数据.我能够在我的webapp上上传和插入图像.当我从JPA读取图像后尝试显示图像时,我的byte []的长度总是2x-1或2x-2,其中x是postgres 9中bytea字段的长度.显然浏览器不会显示图像说它已损坏.我可以用一些帮助来弄清楚为什么我得到(约)两倍的预期.这是我的图像类的映射.使用eclipselink和JPA 2在Mac上击中postgres 9.

当我从数据库中选择时

select *, length(bytes) from image;

我得到9765的长度.在我的控制器的断点中,byte []长度是19529,这是数据库中两倍的一个字节.

@Entity

@Table( name = "image" )

@SequenceGenerator( name = "IMAGE_SEQ_GEN", sequenceName = "IMAGE_SEQUENCE" )

public class Image

extends DataObjectAbstract

{

@Id

@GeneratedValue( strategy = GenerationType.SEQUENCE, generator = "IMAGE_SEQ_GEN" )

private Long key;

@Column( name="content_type" )

private String contentType;

@Lob

@Basic( optional=false )

@Column( name="bytes" )

private byte[] bytes;

// constructor and getters and setters

}

pgadmin向我展示了图像表的以下内容

CREATE TABLE image

(

"key" bigint NOT NULL,

bytes bytea,

content_type character varying(255),

"version" integer,

CONSTRAINT image_pkey PRIMARY KEY (key)

)

WITH (

OIDS=FALSE

);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值