chiperortiz
chiperortiz

Reputation: 4991

Hibernate Criteria and DetachedCriteria concate Properties or fields

i have a criteria like

public ArrayList<Student>getStudentsWithPicture(final Student student)
{
    final Criteria criteria = session.createCriteria(Student.class).add(and(prepareForSelect()));
    criteria.add(Subqueries.gt(1L,getDetached);//the students with a less added picture...
    return new ArrayList<Student>(criteria.list());    
}

i need the students with a less a picture in the table Pictures but this Database is a legacy one

they store the pictures concatening some fields for the student entity

yes a quite weird

i want something like this

SQL

select
    this_.ID as y0_,
    this_.C01 as y1_,
    this_.C02 as y2_,
    this_.C03 as y3_ 
from
    student_table this_ 
where
    (          
        and this_.C11=true
        and 1>=
        (
            select
                count(*)
            from
                PICTURE_TABLE this_ 
            where
                (
                    this_.C03='concatening'+ this_.ID+ this_.C01+this_.C02+this_.C03//the fields of the student
                )
        )       
    )           

this is just a understandable example the actual query is a lot worse...

as you can see i want the students with status='true' and they have a less one match on the PICTURE_TABLE but the field C03 from the table is created by concatening the fields of the Student which i have retrieve it as well...

my detached

public DetachedCriteria getWithDetachedMatchStudentWithPictures()
{
    final String concatedFields = ...........how i accomplish this??????.................
    final DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Pictures.class)
       .add(equals("c03",concatedFields))
       .setProjection(addProjection("id"))
       .setResultTransformer(transformer(Pictures.class));           
    return detachedCriteria;
}    

my question is.

can i concate the fields at runtime..?? using Criteria A.P.I

there is some approach?

thanks a lot

Upvotes: 0

Views: 872

Answers (1)

Mitul Maheshwari
Mitul Maheshwari

Reputation: 2647

Yes, we can contact multiple columns run time in hibernate. i have concat columns in my beloved query.

 Query query = session.createQuery("SELECT DISTINCT f.fileid , f.filename,  f.filetype , f.folderpath , max(f.version) from FileBean f  GROUP BY concat(folderpath,filename,'.',filetype)");
  result = query.list();

Upvotes: 1

Related Questions