我有一个类似的类型:
TypedQuery<Object[]> query = em.createQuery("SELECT c.id , c.name, g.id, g.brand, g.price,g.goodsImage FROM Category c JOIN c.goods g WHERE g.user.userId=:userId and g.class=:type",Object[].class);
query.setParameter("userId", userId);
query.setParameter("type", type.toUpperCase());
其中g.goodsImage是一个字节数组。 我不知道的是,如何将对象[5]转换为字节[]?
我试图序列化对象,但我没有运气。
这就是我的尝试:
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutput out;
try {
out = new ObjectOutputStream(bos);
out.writeObject(object[5]);
byte[] image = new byte[ bos.size()];
image = bos.toByteArray();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
如果我这样做:
TypedQuery<byte[]> query = em.createQuery("SELECT g.goodsImage From Goods g ",byte[].class);
这样可行,但第一个Typed Query不会。
你知道如何将object []转换为byte []吗?
答案 0 :(得分:0)
正如DN1告诉我的那样,投射对象将起作用:
goods.goodsImage = (byte[]) object[5];