【发布时间】: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