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

Source: Internet
Author: User

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

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.