Package Com.ipinyou.mip.dataasset.campaignmanagement.entity;import Com.ipinyou.mip.utils.numberutils;import Com.ipinyou.mip.utils.stringhelper;import Lombok. Data;import Lombok. Equalsandhashcode;import Lombok. Tostring;import Org.apache.commons.lang3.builder.hashcodeexclude;import Org.hibernate.annotations.filter;import Javax.persistence.*; import java.text.decimalformat;import java.util.hashset;import java.util.set;importStaticJavax.persistence.fetchtype.eager;importStaticJavax.persistence.FetchType.LAZY; @Data @entity@table (name="campaign_dashboard_dimension") @ToString @equalsandhashcode Public classCampaigndashboarddimensiondo {@IdPrivateLong ID; @TransientPrivateDouble imprate =1.0; @Column (Name="3_reach") PrivateDouble Reach3; @Column (Name="1_reach") PrivateDouble Reach1; PrivateLong Campaignid; @OneToMany (Fetch= LAZY, Cascade =cascadetype.all) @JoinColumn (name="campaign_dashboard_dimension_id") @org. hibernate.annotations.OrderBy (clause="Imp desc") @Filter (name="Dimension", condition ="dimension_type=:d imension") PrivateSet<campaigndashboarddimensiondetaildo> Campaigndashboarddimensiondetaildo =NewHashset<>(); }
One
Package Com.ipinyou.mip.dataasset.campaignmanagement.entity;import Com.ipinyou.mip.utils.numberutils;import Com.ipinyou.mip.utils.stringhelper;import Lombok. Data;import Lombok. Tostring;import Org.hibernate.annotations.filterdef;import Org.hibernate.annotations.orderby;import Org.hibernate.annotations.paramdef;import org.hibernate.annotations.where;import javax.persistence.*; import Java.text.decimalformat;importStaticJavax.persistence.FetchType.EAGER; @Data @entity@table (name="Campaign_dashboard_dimension_detail") @ToString @filterdef (name="Dimension", [email protected] (name="Dimension", type="java.lang.String")) Public classCampaigndashboarddimensiondetaildo {@IdPrivateLong ID; PrivateLong version; PrivateJava.sql.Timestamp lastmodified; PrivateString removed; PrivateLong Imp; PrivateDouble reachrate; PrivateString DimensionName; PrivateString Dimensiontype; PrivateLong UV; PrivateLong Click; PrivateDouble TA =0.0; @TransientPrivateDouble imprate; @TransientPrivateDouble Diffta; @TransientPrivateDouble DiffReach3 =0.0; @TransientPrivateDouble Targetta =0.0; @TransientPrivateDouble TargetReach3 =0.0;}
many
PublicList<campaigndashboarddimensiondo> Getcategorydata (list<string>DisplayType, String dimension, string source, Long Campaignid) {List<CampaignDashboardDimensionDo> resultlist=NewArraylist<>(); if(displaytype==NULL||Displaytype.isempty ()) { returnresultlist; } for(String type:displaytype) {StringBuilder sb=NewStringBuilder (); Sb.append ("Select CDD from Campaigndashboarddimensiondo as CDD left join fetch Cdd.campaigndashboarddimensiondetaildo as CDDD where Cdd.campaignid=:campaignid and Cdd.source=:source"+"and cdd.logdate= (select Max (logdate) from Campaigndashboarddimensiondo where Campaignid=:campaignid and source=: Source and Displaytype=:type) and Cdd.displaytype=:type"); Filter Filter= Entitymanager.unwrap (Session).class). Enablefilter ("Dimension"); Filter.setparameter ("Dimension", dimension); Typedquery<CampaignDashboardDimensionDo> query = Entitymanager.createquery (Sb.tostring (), Campaigndashboarddimensiondo .class); Query.setparameter ("type", type); Query.setparameter ("Source", source); Query.setparameter ("Campaignid", Campaignid); List<CampaignDashboardDimensionDo> list =query.getresultlist (); Set<CampaignDashboardDimensionDo>Set=NewHashset<>(list); Resultlist.addall (Set); } returnresultlist; }
Query Code
Jpa/hibernate @onetomany Use the left JOIN to add multiple conditions, you can use the filter filters (With-clause not allowed on fetched associations; using filters exception Letter Income