Сокращение OneToMany до OneToOne с предложением Where - PullRequest
0 голосов
/ 22 марта 2019

У меня есть таблица установки, подобная этой:

public class SampleMetricAggregation {

@Id
@Column(name="SAMPLE_METRIC_AGGR_ID")
protected Long id;

@OneToOne(fetch=FetchType.LAZY, mappedBy="sampleMetricAggrId")
@Where(clause="SCOPE='EXON' and PARTITION='ALL' and TYPE='RAW'")
protected CoverageCalculation exonCoverageCalculation;

и

@Entity
@Table(name="COVERAGE_CALCULATION")
public class CoverageCalculation {

@Id
@SequenceGenerator(name="CURATION_CALC_SEQ", sequenceName="CURATION_CALC_SEQ", allocationSize=1)
@Column(name="COVERAGE_CALCULATION_ID")
protected Long id;

@OneToOne(fetch=FetchType.LAZY)
@JoinColumn(name="SAMPLE_METRIC_AGGR_ID")
protected SampleMetricAggregation sampleMetricAggrId;

Отношение SampleMetricAggr к CoverageCalc одно к многим (может быть много CoverageCalcs с тем же Id), но я хочу иметь возможность получить конкретный, основанный на критериях фильтрации в аннотации @Where.

Может ли hibernate справиться с этим?В моем тестировании я получал сообщение об ошибке «Найдено более одной строки с данным идентификатором».

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...