jpaマルチペアマルチ条件クエリー
17335 ワード
Spring data jpaマルチペアマルチクエリー
package com.ideal.entity;
import org.hibernate.annotations.GenericGenerator;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import java.util.HashSet; import java.util.Set;
import javax.persistence.*;
@Entity @Table(name = “e_infotitle”) @JsonIgnoreProperties(value = { “infomationSet”,“infoTitle” }) public class InfoTitle { @Id @GeneratedValue(generator = “idGenerator”) @GenericGenerator(name = “idGenerator”, strategy = “guid”) private String title_id; private String infotype;//情報タイプprivate String is_login;//private String ispublishにログインしているかどうか//private String linkをパブリッシュするかどうか;private String menhu; private String order_no; private String parent_id; private String pictype; private String title_name; private String title_src; private String title_status; private String title_style; private String titledepart; private String titletype; private String tree_code; private String trs_titleid; private String trs_titlename; private String order_num;
}
package com.ideal.entity;
import org.hibernate.annotations.GenericGenerator;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import java.util.Date; import java.util.HashSet; import java.util.Iterator; import java.util.Set;
import javax.persistence.*;
@Entity @Table(name = “e_infomation”) @JsonIgnoreProperties(value = { “infomation” }) public class Infomation { @Id private String content_id; private String attachs_path; private String audituserid; private String auditusername; private String contact; private String contactaddress; @Lob @Basic(fetch=FetchType.LAZY) @Column(columnDefinition=“TEXT”) private byte[] content; private Date crtdate; private Date date_time; private String displayuser; private String email; private Date importdate; private String include; private Date info_endtime; private Date info_starttime; private String info_status; private String info_type; private String info_url; private String info_user; private Integer insertedoldsystem; private String introduction; private Integer is_main; private Integer is_top; private Integer is_view; private Integer is_vip; private String isimport; private String isout; private String ispic; private String istohypl; private String istojituan; private String job; private String keyword; private String num; private Integer order_no; private String orgid; private String senduserid; private String sendusername; private String sex; private String simple_content; private String subhead; private Integer timenew; private String title; private String unit; private String work_user; private Date work_time; private String workaddress;
}
//InfomationList = this.InfomationService.findAll(querySpecifi);//ページングpageNum=pageNum<=0?0:pageNum-1; Pageable pageable= PageRequest.of(pageNum,myFile.getPagesize()); Page InfomationPage = this.infomationService.findAll(querySpecifi, pageable); log.info(InfomationPage.getTotalElements()+"");
//String fileName = “ddd.txt”;//3.content-disposition応答ヘッダ制御ブラウザがダウンロード形式でファイルString userAgent=requestを開くように設定.getHeader(“User-Agent”); if(file.exists(){//ファイル親ディレクトリに//response.setContentType("アプリケーション/force-download");//response.setHeader("Content-Disposition","attachment;file Name="+file Name);try{//IEまたはIEをカーネルとするブラウザ:if(userAgent.contains(「MSIE」)userAgent.contains("Trident"){
package com.ideal.entity;
import org.hibernate.annotations.GenericGenerator;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import java.util.HashSet; import java.util.Set;
import javax.persistence.*;
@Entity @Table(name = “e_infotitle”) @JsonIgnoreProperties(value = { “infomationSet”,“infoTitle” }) public class InfoTitle { @Id @GeneratedValue(generator = “idGenerator”) @GenericGenerator(name = “idGenerator”, strategy = “guid”) private String title_id; private String infotype;//情報タイプprivate String is_login;//private String ispublishにログインしているかどうか//private String linkをパブリッシュするかどうか;private String menhu; private String order_no; private String parent_id; private String pictype; private String title_name; private String title_src; private String title_status; private String title_style; private String titledepart; private String titletype; private String tree_code; private String trs_titleid; private String trs_titlename; private String order_num;
@ManyToMany(mappedBy="titleSet")
private Set infomationSet ;
public Set getInfomationSet() {
return infomationSet;
}
public void setInfomationSet(Set infomationSet) {
this.infomationSet = infomationSet;
}
public String getTitle_id() {
return title_id;
}
public void setTitle_id(String title_id) {
this.title_id = title_id;
}
public String getInfotype() {
return infotype;
}
public void setInfotype(String infotype) {
this.infotype = infotype;
}
public String getIs_login() {
return is_login;
}
public void setIs_login(String is_login) {
this.is_login = is_login;
}
public String getIspublish() {
return ispublish;
}
public void setIspublish(String ispublish) {
this.ispublish = ispublish;
}
public String getLink() {
return link;
}
public void setLink(String link) {
this.link = link;
}
public String getMenhu() {
return menhu;
}
public void setMenhu(String menhu) {
this.menhu = menhu;
}
public String getOrder_no() {
return order_no;
}
public void setOrder_no(String order_no) {
this.order_no = order_no;
}
public String getParent_id() {
return parent_id;
}
public void setParent_id(String parent_id) {
this.parent_id = parent_id;
}
public String getPictype() {
return pictype;
}
public void setPictype(String pictype) {
this.pictype = pictype;
}
public String getTitle_name() {
return title_name;
}
public void setTitle_name(String title_name) {
this.title_name = title_name;
}
public String getTitle_src() {
return title_src;
}
public void setTitle_src(String title_src) {
this.title_src = title_src;
}
public String getTitle_status() {
return title_status;
}
public void setTitle_status(String title_status) {
this.title_status = title_status;
}
public String getTitle_style() {
return title_style;
}
public void setTitle_style(String title_style) {
this.title_style = title_style;
}
public String getTitledepart() {
return titledepart;
}
public void setTitledepart(String titledepart) {
this.titledepart = titledepart;
}
public String getTitletype() {
return titletype;
}
public void setTitletype(String titletype) {
this.titletype = titletype;
}
public String getTree_code() {
return tree_code;
}
public void setTree_code(String tree_code) {
this.tree_code = tree_code;
}
public String getTrs_titleid() {
return trs_titleid;
}
public void setTrs_titleid(String trs_titleid) {
this.trs_titleid = trs_titleid;
}
public String getTrs_titlename() {
return trs_titlename;
}
public void setTrs_titlename(String trs_titlename) {
this.trs_titlename = trs_titlename;
}
public String getOrder_num() {
return order_num;
}
public void setOrder_num(String order_num) {
this.order_num = order_num;
}
public InfoTitle() {
super();
}
public InfoTitle(String title_id) {
super();
this.title_id = title_id;
}
}
package com.ideal.entity;
import org.hibernate.annotations.GenericGenerator;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import java.util.Date; import java.util.HashSet; import java.util.Iterator; import java.util.Set;
import javax.persistence.*;
@Entity @Table(name = “e_infomation”) @JsonIgnoreProperties(value = { “infomation” }) public class Infomation { @Id private String content_id; private String attachs_path; private String audituserid; private String auditusername; private String contact; private String contactaddress; @Lob @Basic(fetch=FetchType.LAZY) @Column(columnDefinition=“TEXT”) private byte[] content; private Date crtdate; private Date date_time; private String displayuser; private String email; private Date importdate; private String include; private Date info_endtime; private Date info_starttime; private String info_status; private String info_type; private String info_url; private String info_user; private Integer insertedoldsystem; private String introduction; private Integer is_main; private Integer is_top; private Integer is_view; private Integer is_vip; private String isimport; private String isout; private String ispic; private String istohypl; private String istojituan; private String job; private String keyword; private String num; private Integer order_no; private String orgid; private String senduserid; private String sendusername; private String sex; private String simple_content; private String subhead; private Integer timenew; private String title; private String unit; private String work_user; private Date work_time; private String workaddress;
@ManyToMany(cascade = CascadeType.DETACH,fetch=FetchType.EAGER)
@JoinTable(name = "e_title_info",
joinColumns = {@JoinColumn(name="content_id",referencedColumnName="content_id")},
inverseJoinColumns = {@JoinColumn(name = "title_id",referencedColumnName="title_id")})
private Set titleSet;
public Set getTitleSet() {
return titleSet;
}
public void setTitleSet(Set titleSet) {
this.titleSet = titleSet;
}
public String getContent_id() {
return content_id;
}
public void setContent_id(String content_id) {
this.content_id = content_id;
}
public String getAttachs_path() {
return attachs_path;
}
public void setAttachs_path(String attachs_path) {
this.attachs_path = attachs_path;
}
public String getAudituserid() {
return audituserid;
}
public void setAudituserid(String audituserid) {
this.audituserid = audituserid;
}
public String getAuditusername() {
return auditusername;
}
public void setAuditusername(String auditusername) {
this.auditusername = auditusername;
}
public String getContact() {
return contact;
}
public void setContact(String contact) {
this.contact = contact;
}
public String getContactaddress() {
return contactaddress;
}
public void setContactaddress(String contactaddress) {
this.contactaddress = contactaddress;
}
public byte[] getContent() {
return content;
}
public void setContent(byte[] content) {
this.content = content;
}
public Date getCrtdate() {
return crtdate;
}
public void setCrtdate(Date crtdate) {
this.crtdate = crtdate;
}
public Date getDate_time() {
return date_time;
}
public void setDate_time(Date date_time) {
this.date_time = date_time;
}
public String getDisplayuser() {
return displayuser;
}
public void setDisplayuser(String displayuser) {
this.displayuser = displayuser;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Date getImportdate() {
return importdate;
}
public void setImportdate(Date importdate) {
this.importdate = importdate;
}
public String getInclude() {
return include;
}
public void setInclude(String include) {
this.include = include;
}
public Date getInfo_endtime() {
return info_endtime;
}
public void setInfo_endtime(Date info_endtime) {
this.info_endtime = info_endtime;
}
public Date getInfo_starttime() {
return info_starttime;
}
public void setInfo_starttime(Date info_starttime) {
this.info_starttime = info_starttime;
}
public String getInfo_status() {
return info_status;
}
public void setInfo_status(String info_status) {
this.info_status = info_status;
}
public String getInfo_type() {
return info_type;
}
public void setInfo_type(String info_type) {
this.info_type = info_type;
}
public String getInfo_url() {
return info_url;
}
public void setInfo_url(String info_url) {
this.info_url = info_url;
}
public String getInfo_user() {
return info_user;
}
public void setInfo_user(String info_user) {
this.info_user = info_user;
}
public Integer getInsertedoldsystem() {
return insertedoldsystem;
}
public void setInsertedoldsystem(Integer insertedoldsystem) {
this.insertedoldsystem = insertedoldsystem;
}
public String getIntroduction() {
return introduction;
}
public void setIntroduction(String introduction) {
this.introduction = introduction;
}
public Integer getIs_main() {
return is_main;
}
public void setIs_main(Integer is_main) {
this.is_main = is_main;
}
public Integer getIs_top() {
return is_top;
}
public void setIs_top(Integer is_top) {
this.is_top = is_top;
}
public Integer getIs_view() {
return is_view;
}
public void setIs_view(Integer is_view) {
this.is_view = is_view;
}
public Integer getIs_vip() {
return is_vip;
}
public void setIs_vip(Integer is_vip) {
this.is_vip = is_vip;
}
public String getIsimport() {
return isimport;
}
public void setIsimport(String isimport) {
this.isimport = isimport;
}
public String getIsout() {
return isout;
}
public void setIsout(String isout) {
this.isout = isout;
}
public String getIspic() {
return ispic;
}
public void setIspic(String ispic) {
this.ispic = ispic;
}
public String getIstohypl() {
return istohypl;
}
public void setIstohypl(String istohypl) {
this.istohypl = istohypl;
}
public String getIstojituan() {
return istojituan;
}
public void setIstojituan(String istojituan) {
this.istojituan = istojituan;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public String getKeyword() {
return keyword;
}
public void setKeyword(String keyword) {
this.keyword = keyword;
}
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
public Integer getOrder_no() {
return order_no;
}
public void setOrder_no(Integer order_no) {
this.order_no = order_no;
}
public String getOrgid() {
return orgid;
}
public void setOrgid(String orgid) {
this.orgid = orgid;
}
public String getSenduserid() {
return senduserid;
}
public void setSenduserid(String senduserid) {
this.senduserid = senduserid;
}
public String getSendusername() {
return sendusername;
}
public void setSendusername(String sendusername) {
this.sendusername = sendusername;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getSimple_content() {
return simple_content;
}
public void setSimple_content(String simple_content) {
this.simple_content = simple_content;
}
public String getSubhead() {
return subhead;
}
public void setSubhead(String subhead) {
this.subhead = subhead;
}
public Integer getTimenew() {
return timenew;
}
public void setTimenew(Integer timenew) {
this.timenew = timenew;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
public String getWork_user() {
return work_user;
}
public void setWork_user(String work_user) {
this.work_user = work_user;
}
public Date getWork_time() {
return work_time;
}
public void setWork_time(Date work_time) {
this.work_time = work_time;
}
public String getWorkaddress() {
return workaddress;
}
public void setWorkaddress(String workaddress) {
this.workaddress = workaddress;
}
}
*/
@RequestMapping("/infomation/query")
public String getInfoQueryList(String title_id,String keyword,String title,String subhead,Date crtdate,String auditusername, @RequestParam(defaultValue ="0") int pageNum, Model model) {
try {
System.out.println("keyword 》》》》》》》》》》》》》》》》》"+keyword);
System.out.println("title_id 》》》》》》》》》》》》》》》》》"+title_id);
System.out.println("title 》》》》》》》》》》》》》》》》》"+title);
System.out.println("pageNum 》》》》》》》》》》》》》》》》》"+pageNum);
System.out.println("subhead 》》》》》》》》》》》》》》》》》"+subhead);
System.out.println("mobile 》》》》》》》》》》》》》》》》》"+auditusername);
System.out.println("date 》》》》》》》》》》》》》》》》》"+crtdate);
List InfomationList = null;
Specification querySpecifi = new Specification() {
@Override
public Predicate toPredicate(Root root, CriteriaQuery> query, CriteriaBuilder criteriaBuilder) {
List predicates = new ArrayList<>();
if (title != null && !title.equals("")) {
predicates.add(criteriaBuilder.like(root.get("title"), "%" + title + "%"));
}
if (keyword != null && !keyword.equals("")) {
predicates.add(criteriaBuilder.like(root.get("keyword"), "%" + keyword + "%"));
}
if (title_id != null && !title_id.equals("")) {
SetJoin title = root.join(root.getModel().getSet("titleSet", InfoTitle.class),JoinType.LEFT);
predicates.add(criteriaBuilder.equal(title.get("title_id"),title_id)) ;
}
if (crtdate != null && !crtdate.equals("")) {
predicates.add(criteriaBuilder.equal(root.get("crtdate"), crtdate));
}
if (auditusername != null && !auditusername.equals("")) {
predicates.add(criteriaBuilder.like(root.get("auditusername"), "%" + auditusername + "%"));
}
return criteriaBuilder.and(predicates.toArray(new Predicate[predicates.size()]));
}
};
//InfomationList = this.InfomationService.findAll(querySpecifi);//ページングpageNum=pageNum<=0?0:pageNum-1; Pageable pageable= PageRequest.of(pageNum,myFile.getPagesize()); Page InfomationPage = this.infomationService.findAll(querySpecifi, pageable); log.info(InfomationPage.getTotalElements()+"");
model.addAttribute("InfomationList", InfomationPage);
model.addAttribute("pageable", pageable);
if(title_id == null){
return "/commons/infoPublish::info_list";
}else{
return "/commons/infoPublish::main_list";
}
} catch (Exception e) {
// TODO Auto-generated catch block
return e.getMessage();
}
}
@GetMapping("/infomation/download/{objid}")
public void downloadFileByOutputStream(HttpServletRequest request, HttpServletResponse response,@PathVariable String objid) {
Optional accessory= accessoryService.findById(objid);
Accessory acc=accessory.get();
String ledgerAttach_url=acc.getAccessory_url();
String fileName=acc.getAccessory();
// 1.
File file = new File(ledgerAttach_url);
// 2.
//String fileName = “ddd.txt”;//3.content-disposition応答ヘッダ制御ブラウザがダウンロード形式でファイルString userAgent=requestを開くように設定.getHeader(“User-Agent”); if(file.exists(){//ファイル親ディレクトリに//response.setContentType("アプリケーション/force-download");//response.setHeader("Content-Disposition","attachment;file Name="+file Name);try{//IEまたはIEをカーネルとするブラウザ:if(userAgent.contains(「MSIE」)userAgent.contains("Trident"){
fileName = java.net.URLEncoder.encode(fileName, "UTF-8");
} else {
// IE :
fileName = new String(fileName.getBytes("UTF-8"), "ISO-8859-1");
}
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
response.setHeader("Content-disposition",String.format("attachment; filename=\"%s\"", fileName));
response.setContentType("multipart/form-data");
response.setCharacterEncoding("UTF-8");
byte[] buffer = new byte[1024];
FileInputStream fis = null; //
BufferedInputStream bis = null;
OutputStream os = null; //
try {
os = response.getOutputStream();
fis = new FileInputStream(file);
bis = new BufferedInputStream(fis);
int i = bis.read(buffer);
while(i != -1){
os.write(buffer);
i = bis.read(buffer);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("----------file download" + fileName);
try {
bis.close();
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}