У меня есть и oracle таблица определена следующим образом:
MYCLASS_ID_PK (NUMBER(50,0)) |MYCLASS_UUID (VARCHAR2(50 BYTE)) |PAYLOAD (CLOB)
У меня есть JPARepository, определенная следующим образом:
public interface MyClassRepository extends JpaRepository<MyClass, Long> {
Optional<MyClass> findByUuid(UUID uuid);
}
И у меня есть сущность, определенная следующим образом:
...
import java.sql.Clob;
...
@Entity
@Table(name = "foo_myclass")
@NoArgsConstructor
@Getter
@Setter
@NamedStoredProcedureQueries({
@NamedStoredProcedureQuery(
name = "create_myclass",
procedureName = "CREATE_MYCLASS",
parameters = {
@StoredProcedureParameter(mode = ParameterMode.IN, name = "myClassUuid", type = String.class),
@StoredProcedureParameter(mode = ParameterMode.IN, name = "payload", type = Clob.class),
@StoredProcedureParameter(mode = ParameterMode.OUT, name = "myClassId", type = Long.class)
})
})
public class MyClass {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "myclass_id_pk")
private Long id;
@NotNull
@Type(type = "uuid-char")
@Column(name = "myclass_uuid")
private UUID uuid;
@Lob
@Column(name = "payload")
private Clob payload;
}
Первоначально я использовал String в своем классе Entity для ссылки на свою полезную нагрузку на oracle CLOB. Тем не менее, мой размер строки слишком велик для правильной обработки (подтверждено модульным тестом) JPA и Oracle, подход Clob позволил мне решить эту конкретную проблему c.
Проблема, с которой я сейчас сталкиваюсь, заключается в том, что мой findByUuid (UUID uuid) возвращает экземпляр MyClass, в котором вместо моего полезного груза была реализована реализация oracle. sql .CLOB. реализации org.hibernate.engine.jdb c .ClobProxy.
В какой-то момент реализация Clob oracle вызывает у меня проблемы, и я бы хотел этого избежать. Я также хочу использовать реализацию hibernate, чтобы иметь что-то похожее на то, что описано в https://thoughts-on-java.org/mapping-blobs-and-clobs-with-hibernate-and-jpa/.
Кто-нибудь знает, как я могу заставить результат использования findByUuid (UUID uuid) использовать Реализация Clob в спящем режиме вместо реализации oracle?