1

I have an entity class below. As an important that, user_config column keeps JSON based user configuration so that I had to annotate the variable with @Lob.

  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  private Long id;

  @Column(name = "user_name")
  @NotNull
  private String userName;

  @Lob
  @Column(name = "user_config")
  @NotNull
  private String userConfig;

I am trying to get a bunch of entries over the JPA repository from the database below:

@Repository
public interface UserConfigRepository extends CrudRepository<UserConfig, Long> {
  List<UserConfig> findByUserName(String userName);
}

Finally, I have an exception below:

Caused by: org.postgresql.util.PSQLException: Bad value for type long : "some user info"
    at org.postgresql.jdbc.PgResultSet.toLong(PgResultSet.java:2894)
    at org.postgresql.jdbc.PgResultSet.getLong(PgResultSet.java:2101)
    at org.postgresql.jdbc.PgResultSet.getClob(PgResultSet.java:447)
    at org.postgresql.jdbc.PgResultSet.getClob(PgResultSet.java:434)
    at com.zaxxer.hikari.pool.HikariProxyResultSet.getClob(HikariProxyResultSet.java)
    at org.hibernate.type.descriptor.sql.ClobTypeDescriptor$1.doExtract(ClobTypeDescriptor.java:44)
    at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:47)
    at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:257)
    at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:253)
    at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:243)
    at org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:329)
    at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:3087)
    at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1877)
    at org.hibernate.loader.Loader.hydrateEntityState(Loader.java:1805)
    at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1778)
    at org.hibernate.loader.Loader.getRow(Loader.java:1626)
    at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:743)
    at org.hibernate.loader.Loader.getRowsFromResultSet(Loader.java:1042)
    at org.hibernate.loader.Loader.processResultSet(Loader.java:993)
    at org.hibernate.loader.Loader.doQuery(Loader.java:962)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:352)
    at org.hibernate.loader.Loader.doList(Loader.java:2857)
    ... 102 more 

Could you please assist me to fix this error?

PS:SpringBoot Version:2.3.2.RELEASE

oisleyen
  • 92
  • 2
  • 8
  • Why `@Lob`? It's a String. –  Dec 03 '20 at 19:27
  • @a_horse_with_no_name You are right however I thought that I had to have limitless column except for varchar since I try to keep user configuration which is JSON based. – oisleyen Dec 03 '20 at 19:45

0 Answers0