Crear una consulta de disyunción de hibernación programáticamente

Tengo un fragmento de código Java que codifica una consulta de disyunción de hibernación que se ve así

session = HibernateUtils.beginTransaction("outpatient");
        Criteria criteria = session.createCriteria(AugmentToken.class);
        session.beginTransaction();
        if (type == Constants.ICD9CPT) {
            criteria.add(Restrictions.disjunction()
                    .add(Restrictions.eq("codeType", "d"))
                    .add(Restrictions.eq("codeType", "p"))
                    .add(Restrictions.eq("codeType", "c")));
        } else if (type == Constants.EM) {
            criteria.add(Restrictions.disjunction()
                    .add(Restrictions.eq("codeType", "eros"))
                    .add(Restrictions.eq("codeType", "ehpi"))
                    .add(Restrictions.eq("codeType", "epe")));
        }

Pero este no es un código muy elegante. Lo que me gustaría hacer es pasar una variedad de tipos de código a un método y construir dinámicamente los criterios de disyunción. Cada sitio web que miro proporciona ejemplos de consultas disyuntivas que se parecen a las anteriores, pero esto no funcionará para mí porque no quiero codificar la construcción de la restricción para los criterios ya que la cantidad de tipos de código puede variar.

¿Cómo hago esto?

Gracias,

Elliott

Respuesta 1

Estaba resolviendo una pregunta de desafío de programación pero mi solución estaba dando tiempo de espera / error para grandes números. ¿Alguien puede ayudarme a optimizar mi solución? Pregunta: Se le da una matriz A de N ...

Digamos que tengo los archivos jar de una aplicación Java muy grande, pero no puedo volver a generarlos desde la fuente. También estipulemos que quiero modificar un aspecto del comportamiento indeseable de la aplicación al ...

el siguiente código da un error, porque la variable m se definió dos veces. class one {public static void main (String args []) {int m = 10; int m = 10; }} pero cuando la declaración es ...

Me gustaría producir una serie de cadenas de creación aleatoria de una manera corta. Hay tal manera en caso de ints (en lugar de cadenas), así que estoy buscando algo similar usando org.apache.commons ...