Loop JPA array sin activar Lob fetch

Si se han definido las siguientes entidades Spring JPA:

@Entity class Album( @Id val id: Long = 0, ... @OneToMany(mappedBy = "album") val mediaItems: Set<Media>) : Serializable @Entity @Table(name = "media") class Media( @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(columnDefinition = "serial") var id: Long? = null, @Column @Lob var content: ByteArray 

La definición incluye una columna @Lob recuperada de forma diferida, que en realidad es floja dado que la database subyacente utiliza objects grandes de Postgres. Mi spring jpa está respaldado por Hibernate. Al alternar entre los elementos de medios inputs de jpa de spring, todas las inputs obtienen automáticamente su contenido @Lob asociado sin siquiera tocar la columna de contenido. Esta salida de Lob no es necesaria para la serialization actual y ralentiza enormemente el ciclo. Aquí está mi loop:

 val albumProtocs = MediaProtocs.AlbumList.newBuilder().addAllAlbum( ownAlbum.map { album -> MediaProtocs.Album.newBuilder() .setId(album.id) .setName(album.name) .addAllMedia(album.mediaItems.map { media -> MediaProtocs.Media.newBuilder().setId(media.id as Long) .setDescription(media.description) .setMimeType(media.mimetype).build() }).build() }).build() 

Hibernate carga todos los campos flojos, si llamas a cualquier método de object de entidad, excepto getters. Solo necesita encontrar el método que se llama.

Puede intentar cargar la list de medios directamente sin el álbum. También puede intentar cargar una list de medios en la list de DTO usando proyecciones.

  • Spring & kotlin: ¿Cuál es la diferencia entre el constructor y la inyección tardía?
  • Almacenar datos en BEAN (Spring Boot REST)
  • spring.config.location no funciona en el arranque de spring 2.0.0 M6
  • cómo cargar config en spring-webflux sin spring-boot?
  • Async Spring Boot con Kotlin no funciona
  • El comstackdor de Kotlin se queja de usar una expresión SPeL en una definición de propiedad. ¿POR QUÉ?
  • Api de reposo de arranque de spring: cómo admitir tanto json como request de urlencoded?