All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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