Guest User

Untitled

a guest
Oct 17th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.02 KB | None | 0 0
  1. @Entity
  2. @Table(name="form")
  3. public class Form implements Serializable {
  4.  
  5. private static final long serialVersionUID = 1L;
  6.  
  7. @Id
  8. @GeneratedValue(strategy=GenerationType.AUTO)
  9. @JsonView(EntityView.SummaryView.class)
  10. private Long id;
  11.  
  12. @JsonView(EntityView.SummaryView.class)
  13. private String name;
  14.  
  15. @JsonView(EntityView.DetailView.class)
  16. @OneToMany(mappedBy = "form", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
  17. private List<FormLabel> labels;
  18. }
  19.  
  20. @Entity
  21. @Table(name="form_label")
  22. public class FormLabel implements Serializable {
  23.  
  24. private static final long serialVersionUID = 1L;
  25.  
  26. @Id
  27. @GeneratedValue(strategy = GenerationType.AUTO)
  28. @JsonView(EntityView.SummaryView.class)
  29. private Long id;
  30.  
  31. @ManyToOne
  32. @JoinColumn(name = "form_id")
  33. @JsonIgnore
  34. private Form form;
  35.  
  36. @JsonView(EntityView.SummaryView.class)
  37. private String lang;
  38.  
  39. @JsonView(EntityView.SummaryView.class)
  40. private String value;
  41. }
  42.  
  43. select form0_.id as id1_0_, form0_.name as name2_0_ , coalesce(labels1_.value,labels2_.value)
  44. from form form0_
  45. left outer join form_label labels1_ on form0_.id=labels1_.form_id and (labels1_.lang='pt')
  46. left outer join form_label labels2_ on form0_.id=labels2_.form_id and (labels2_.lang='en')
  47. where form0_.name='Form 1'
  48.  
  49. QForm form = QForm.form;
  50. QFormLabel requestedLabels =new QFormLabel("requestedLabels");
  51. QFormLabel defaultLabels = new QFormLabel("defaultLabels");
  52. Form f = new JPAQuery<Form>(entityManager).from(form)
  53. .leftJoin(form.labels, requestedLabels)
  54. .on(requestedLabels.lang.eq(localeRequested.getLanguage()))
  55. .leftJoin(form.labels, defaultLabels)
  56. .on(defaultLabels.lang.eq(localeDefault.getLanguage()))
  57. .where(QForm.form.name.eq(name)).fetchOne();
  58.  
  59. f = (Form) q.from(form)
  60. .leftJoin(form.labels, requestedLabels)
  61. //.on(labels.lang.eq(locale.getLanguage())/* .and(form.id.eq(labels.form.id)) */)
  62. .fetchJoin()
  63. .where(QForm.form.name.eq(name).and(requestedLabels.lang.eq(localeRequested.getLanguage()))).fetchFirst();
Add Comment
Please, Sign In to add comment