Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Entity
- @Table(name="form")
- public class Form implements Serializable {
- private static final long serialVersionUID = 1L;
- @Id
- @GeneratedValue(strategy=GenerationType.AUTO)
- @JsonView(EntityView.SummaryView.class)
- private Long id;
- @JsonView(EntityView.SummaryView.class)
- private String name;
- @JsonView(EntityView.DetailView.class)
- @OneToMany(mappedBy = "form", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
- private List<FormLabel> labels;
- }
- @Entity
- @Table(name="form_label")
- public class FormLabel implements Serializable {
- private static final long serialVersionUID = 1L;
- @Id
- @GeneratedValue(strategy = GenerationType.AUTO)
- @JsonView(EntityView.SummaryView.class)
- private Long id;
- @ManyToOne
- @JoinColumn(name = "form_id")
- @JsonIgnore
- private Form form;
- @JsonView(EntityView.SummaryView.class)
- private String lang;
- @JsonView(EntityView.SummaryView.class)
- private String value;
- }
- select form0_.id as id1_0_, form0_.name as name2_0_ , coalesce(labels1_.value,labels2_.value)
- from form form0_
- left outer join form_label labels1_ on form0_.id=labels1_.form_id and (labels1_.lang='pt')
- left outer join form_label labels2_ on form0_.id=labels2_.form_id and (labels2_.lang='en')
- where form0_.name='Form 1'
- QForm form = QForm.form;
- QFormLabel requestedLabels =new QFormLabel("requestedLabels");
- QFormLabel defaultLabels = new QFormLabel("defaultLabels");
- Form f = new JPAQuery<Form>(entityManager).from(form)
- .leftJoin(form.labels, requestedLabels)
- .on(requestedLabels.lang.eq(localeRequested.getLanguage()))
- .leftJoin(form.labels, defaultLabels)
- .on(defaultLabels.lang.eq(localeDefault.getLanguage()))
- .where(QForm.form.name.eq(name)).fetchOne();
- f = (Form) q.from(form)
- .leftJoin(form.labels, requestedLabels)
- //.on(labels.lang.eq(locale.getLanguage())/* .and(form.id.eq(labels.form.id)) */)
- .fetchJoin()
- .where(QForm.form.name.eq(name).and(requestedLabels.lang.eq(localeRequested.getLanguage()))).fetchFirst();
Add Comment
Please, Sign In to add comment