【问题标题】:JHipster Spring boot : org.hibernate.HibernateException: Unable to access lob streamJHipster Spring boot:org.hibernate.HibernateException:无法访问 lob 流
【发布时间】:2019-03-03 17:18:54
【问题描述】:

我使用 JHipster 创建了我的应用程序。当我尝试通过 TournamentQueryService 获取锦标赛列表时,我收到此错误:

TournamentQueryService.findByCriteria() 中的异常原因 = 'org.hibernate.HibernateException:无法访问 lob 流'和 exception = '无法访问 lob 流;嵌套异常是 org.hibernate.HibernateException: 无法访问 lob 流'

这是过滤器和页面对象:

按条件查找:TournamentCriteria{},页面:页面请求 [编号: 0,大小8,排序:startDate: DESC]

所以它只获得了 8 场首场比赛。

这是锦标赛课程:

@Entity
@Table(name = "tournament")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
@Document(indexName = "tournament")
public class Tournament extends AbstractAuditingEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator")
    @SequenceGenerator(name = "sequenceGenerator")
    private Long id;

    @Column(name = "name")
    private String name;

    @Column(name = "location")
    private String location;

    @Column(name = "url")
    private String url;

    @Column(name = "start_date")
    private ZonedDateTime startDate;

    @Column(name = "end_date")
    private ZonedDateTime endDate;

    @Column(name = "entry_fee")
    private Double entryFee;

    @Column(name = "prize")
    private Double prize;

    @Column(name = "goods")
    private String goods;

    @Column(name = "favorite_rating")
    private Long favoriteRating;

    @Column(name = "participants_number")
    private Integer participantsNumber;

    @Column(name = "finished")
    private Boolean finished;

    @Column(name = "view_only")
    private Boolean viewOnly;

    @Column(name = "image")
    private String image;

    @Column(name = "description")
    private String description;

    @Column(name = "teams_applied")
    private String teamsApplied;

    @Lob
    @Column(name = "schedule")
    private String schedule;

    @Lob
    @Column(name = "prize_distribution")
    private String prizeDistribution;

    @Lob
    @Column(name = "contacts")
    private String contacts;

    @Lob
    @Column(name = "rules")
    private String rules;

    @OneToMany(mappedBy = "tournament", fetch = FetchType.LAZY)
    @JsonIgnore
    @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
    private Set<Stream> streams = new HashSet<>();

    @ManyToMany(fetch = FetchType.EAGER)
    @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
    @JoinTable(name = "tournament_platforms", joinColumns = @JoinColumn(name = "tournaments_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "platforms_id", referencedColumnName = "id"))
    private Set<Platform> platforms = new HashSet<>();

    @ManyToOne
    private Game game;

    @ManyToOne
    private TournamentStatus status;

    @ManyToOne(fetch = FetchType.LAZY)
    private EntryType entryType;

    @ManyToOne(fetch = FetchType.LAZY)
    private TournamentFormat format;

    @ManyToOne
    private Region region;

    @ManyToOne(fetch = FetchType.LAZY)
    private GameMode gameMode;

    @ManyToOne(fetch = FetchType.LAZY)
    private PrizeType prizeType;

    @ManyToOne
    private Organizer organizer;

    @ManyToOne(fetch = FetchType.LAZY)
    private TournamentStage stage;

    @ManyToOne
    private HostPlatform hostPlatforms;

    @ManyToOne(fetch = FetchType.LAZY)
    private TournamentType type;

    @ManyToOne
    private PlayType playType;

    @ManyToOne
    private Currency currency;

    @ManyToOne
    private Country country;

这里是调用休眠的方法:

@Transactional(readOnly = true)
public Page<Tournament> findByCriteria(TournamentCriteria criteria, Pageable page) {
    log.info("find by criteria : {}, page: {}", criteria, page);
    final Specifications<Tournament> specification = createSpecification(criteria);
    Page<Tournament> result = tournamentRepository.findAll(specification, page);
    return result;
}

【问题讨论】:

    标签: java hibernate spring-boot jpa jhipster


    【解决方案1】:

    当 hiberante 会话关闭时,您是否有可能尝试访问 Lob 属性?

    尝试将您的 @Lob 属性替换为以下内容:

    @Basic(fetch=FetchType.EAGER) @Lob

    并检查错误是否仍然存在。

    【讨论】:

      猜你喜欢
      • 2012-02-19
      • 1970-01-01
      • 1970-01-01
      • 2019-05-29
      • 2019-05-08
      • 2011-01-05
      • 2020-01-03
      • 1970-01-01
      • 2016-07-25
      相关资源
      最近更新 更多