Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Tải dữ liệu Clob dưới dạng một Chuỗi (háo hức) thông qua Hibernate's org.hibernate.Query

Tôi vừa gặp vấn đề tương tự, nhiều liên kết khác nhau đề xuất nâng cấp spring lên 4.0.1+ và hibernate lên 4.3.x nhưng điều này không tạo ra bất kỳ sự khác biệt nào. Sau đó, tôi xem liên kết này đã giải quyết vấn đề của tôi. Tác giả viết một ResultTransformer tùy chỉnh cho Clob và sau đó đặt nó làm biến áp cho bạn truy vấn thay vì AliasToEntityMapResultTransformer.

http://javatechtricks.blogspot.co .uk / 2012/12 / hibernate-clob-to-string-convert.html

Mã từ bài viết dưới đây:

public class MyResultTransformer extends BasicTransformerAdapter {

 public final static MyResultTransformer INSTANCE;
 static {
  INSTANCE = new MyResultTransformer();
 }

 private MyResultTransformer() {

 }
 private static final long serialVersionUID = 1L;

 @Override
 public Object transformTuple(Object[] tuple, String[] aliases) {
  Map<String, Object> map = new HashMap<String, Object>();
  for (int i = 0; i < aliases.length; i++) {
   Object t = tuple[i];
   if (t != null && t instanceof Clob) {
    Clob c = (Clob) tuple[i];
    try {
     ByteArrayOutputStream bos = new ByteArrayOutputStream();
     IOUtils.copy(c.getAsciiStream(), bos);
     t = new String(bos.toByteArray());
    } catch (SQLException e) {
     e.printStackTrace();
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
   map.put(aliases[i], t);
  }
  return map;
 }
}

Sau đó, trong mã của bạn thay thế

query.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);

với

query.setResultTransformer(MyResultTransformer.INSTANCE);

Ngoài ra, một giải pháp thay thế có thể là thay đổi loại cột, tôi chưa tự mình thử.

Nguồn: http://oreilly.com/java/excerpts/harnessing -hibernate / hibernate-styles.html



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cần cắt khoảng trống trong oracle

  2. Truy vấn ràng buộc Oracle sau giá trị của search_condition

  3. Khoảng trắng không được phép sau tiền tố tham số ':'

  4. SQL Multiple Columns trong mệnh đề IN để chuyển đổi sang JPA

  5. Tổng hợp tra cứu trong SSRS