Skip to content

Instantly share code, notes, and snippets.

@yusufunlu
Created August 7, 2020 12:53
Show Gist options
  • Save yusufunlu/790fc8dc3070a2d086c0279c4e223711 to your computer and use it in GitHub Desktop.
Save yusufunlu/790fc8dc3070a2d086c0279c4e223711 to your computer and use it in GitHub Desktop.
package com.artiwise.newswise.supernova.model.DTO;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.persistence.*;
import java.io.Serializable;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Entity
@SqlResultSetMapping(name="RuleObjectMapping",
classes = {
@ConstructorResult(targetClass = RuleObject.class,
columns = {
@ColumnResult(name="id", type = Long.class),
@ColumnResult(name="name"),
@ColumnResult(name="rtopicid", type = Long.class),
@ColumnResult(name="topicname"),
@ColumnResult(name="rtemplateid", type = Long.class),
@ColumnResult(name="templatename"),
@ColumnResult(name="isinclude", type = Boolean.class),
@ColumnResult(name="issystemrule", type = Boolean.class),
@ColumnResult(name="templateid", type = Long.class),
@ColumnResult(name="reportcode"),
@ColumnResult(name="wscode"),
@ColumnResult(name="category"),
@ColumnResult(name="categorycode"),
@ColumnResult(name="contenttype"),
@ColumnResult(name="contenttypecode"),
@ColumnResult(name="language"),
@ColumnResult(name="languagecode"),
@ColumnResult(name="site"),
@ColumnResult(name="sitecode"),
@ColumnResult(name="sitetype"),
@ColumnResult(name="sitetypecode"),
@ColumnResult(name="keyword"),
@ColumnResult(name="rcOp"),
@ColumnResult(name="rctOp"),
@ColumnResult(name="rlOp"),
@ColumnResult(name="rsOp"),
@ColumnResult(name="rstOp"),
@ColumnResult(name="rkOp")
})
})
@NamedNativeQuery(name="RuleObjectQuery",
query = "select r.id, r.name," +
" r.topic_id as rtopicid,\n" +
" t.name as topicname,\n" +
" r.template_id as rtemplateid,\n" +
" tmp.name as templatename,\n" +
" r.is_include as isinclude,\n" +
" r.is_system_rule as issystemrule,\n" +
" tmp.id as templateid,\n" +
" string_agg(distinct rp.report_code,',' order by rp.report_code) as reportcode,\n" +
" wr.wscode as wscode,\n" +
" string_agg(distinct c.name,',' order by c.name) as category,\n" +
" string_agg(distinct c.code,',' order by c.code) as categorycode,\n" +
" string_agg(distinct ct.name,',' order by ct.name) as contenttype,\n" +
" string_agg(distinct ct.code,',' order by ct.code) as contenttypecode,\n" +
" string_agg(distinct l.name,',' order by l.name) as language,\n" +
" string_agg(distinct l.code,',' order by l.code) as languagecode,\n" +
" string_agg(distinct s.name,',' order by s.name) as site,\n" +
" string_agg(distinct s.code,',' order by s.code) as sitecode,\n" +
" string_agg(distinct st.name,',' order by st.name) as sitetype,\n" +
" string_agg(distinct st.code,',' order by st.code) as sitetypecode,\n" +
" string_agg(distinct k.name,',' order by k.name) as keyword,\n" +
" rc.operator as rcOp,\n" +
" rct.operator as rctOp,\n" +
" rl.operator as rlOp,\n" +
" rs.operator as rsOp,\n" +
" rst.operator as rstOp,\n" +
" rk.operator as rkOp\n" +
"\n" +
"from rule r\n" +
" LEFT JOIN topic t on r.topic_id = t.id\n" +
" LEFT JOIN template_topic tt on tt.topic_id = t.id\n" +
" LEFT JOIN template tmp on coalesce(r.template_id, tt.template_id) = tmp.id\n" +
" LEFT JOIN workspace_rule wr on r.id = wr.rule_id\n" +
" INNER JOIN report_template rp on rp.template_id = tmp.id\n" +
" LEFT JOIN rule_category rc on r.id = rc.rule_id\n" +
" LEFT JOIN category c on c.id = rc.category_id\n" +
" LEFT JOIN rule_contenttype rct on r.id = rct.rule_id\n" +
" LEFT JOIN contenttype ct on ct.id = rct.contenttype_id\n" +
" LEFT JOIN rule_language rl on r.id = rl.rule_id\n" +
" LEFT JOIN language l on rl.language_id = l.id\n" +
" LEFT JOIN rule_site rs on r.id = rs.rule_id\n" +
" LEFT JOIN site s on s.id = rs.site_id\n" +
" LEFT JOIN rule_sitetype rst on r.id = rst.rule_id\n" +
" LEFT JOIN sitetype st on st.id = rst.sitetype_id\n" +
" LEFT JOIN rule_keyword rk on r.id = rk.rule_id\n" +
" LEFT JOIN keyword k on rk.keyword_id = k.id\n" +
"group by r.id, t.id, tmp.id,r.is_include,r.is_system_rule, wr.wscode,rcOp,rkOp, rsOp,rstOp,rlOp,rctOp,templateid\n" +
"order by r.id" ,
resultSetMapping="RuleObjectMapping")
public class RuleObject implements Serializable {
@Id
protected Long id;
protected String name;
private Long rtopicid;
private String topicname;
private Long rtemplateid;
private String templatename;
private Boolean isinclude = true;
private Boolean issystemRule = false;
private Long templateid;
private String reportcode;
public String wscode;
private String category;
private String categorycode;
private String contenttype;
private String contenttypecode;
private String language;
private String languagecode;
private String site;
private String sitecode;
private String sitetype;
private String sitetypecode;
private String keyword;
private String rcOp;
private String rctOp;
private String rlOp;
private String rsOp;
private String rstOp;
private String rkOp;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment