
com.wesleyhome.dao.processor.method.GetSingleResultMethodGenerator Maven / Gradle / Ivy
package com.wesleyhome.dao.processor.method;
import javax.lang.model.element.Element;
import javax.persistence.criteria.CriteriaQuery;
import com.sun.codemodel.JBlock;
import com.sun.codemodel.JClass;
import com.sun.codemodel.JCodeModel;
import com.sun.codemodel.JDefinedClass;
import com.sun.codemodel.JExpr;
import com.sun.codemodel.JFieldVar;
import com.sun.codemodel.JMethod;
import com.sun.codemodel.JMod;
import com.sun.codemodel.JTypeVar;
import com.sun.codemodel.JVar;
import com.wesleyhome.dao.processor.EntityInformationMap;
import com.wesleyhome.dao.processor.model.EntityInfo;
import com.wesleyhome.dao.processor.model.MappingType;
public class GetSingleResultMethodGenerator implements MethodGenerator {
@Override
public void createMethods(final JCodeModel model, final JClass entityJClass, final JDefinedClass _class, final Element fieldElement,
final JFieldVar entityManagerField, final boolean generate, final EntityInfo entityInfo, final EntityInformationMap entityInfoMap, MappingType mappingType) {
JMethod method = _class.method(JMod.PROTECTED, Object.class, "getSingleResult");
JTypeVar returnType = method.generify("E");
method.type(returnType);
JVar criteriaQuery = method.param(model.ref(CriteriaQuery.class).narrow(returnType), "criteriaQuery");
JBlock body = method.body();
body._return(entityManagerField.invoke("createQuery").arg(criteriaQuery).invoke("setMaxResults").arg(JExpr.lit(1))
.invoke("getSingleResult"));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy