Saturday, February 27, 2016

Conjunction(AND) vs Disjunction(OR) Clause using Dynamic Query in Liferay


Today we will discuss about Conjunction ie AND and Disjunction ie OR Clause  in Dynamic Query . Before reading this blog it is highly recommended to read my previous blog on introduction of dynamic query

For each operation we have two ways. So lets start with the example:-

1)Conjunction ie AND Clause

/**
* SELECT * FROM user_ user WHERE user.userId = 12206 AND user.emailAddress like '%adit%';
*/
DynamicQuery userQuery = DynamicQueryFactoryUtil.forClass(User.class, "user",PortalClassLoaderUtil.getClassLoader());
Conjunction conjunction = RestrictionsFactoryUtil.conjunction();
conjunction.add(RestrictionsFactoryUtil.eq("user.userId",12206L));
conjunction.add(RestrictionsFactoryUtil.like("user.emailAddress", "%adit%"));
userQuery.add(conjunction);
try {
List<User> userList = UserLocalServiceUtil.dynamicQuery(userQuery);
for (User user : userList) {
System.out.println("User Id=>>"+user.getUserId()+" User Name=>>"+user.getFirstName());
}
} catch (SystemException e2) {
e2.printStackTrace();
}

Second way

/**
* SELECT * FROM user_ user WHERE user.userId = 12206 AND user.emailAddress like '%adit%';
*/
DynamicQuery userQuery = DynamicQueryFactoryUtil.forClass(User.class, "user",PortalClassLoaderUtil.getClassLoader());
userQuery.add(RestrictionsFactoryUtil.and(RestrictionsFactoryUtil.eq("user.userId",12206L), RestrictionsFactoryUtil.like("user.emailAddress", "%adit%")));
try {
List<User> userList = UserLocalServiceUtil.dynamicQuery(userQuery);
for (User user : userList) {
System.out.println("User Id==>>"+user.getUserId()+" User Name==>>"+user.getFirstName());
}
} catch (SystemException e2) {
e2.printStackTrace();
}


2)Disjunction ie OR Clause

/**
* SELECT * FROM user_ user WHERE user.userId = 12206 OR user.emailAddress like '%adit%';
*/
DynamicQuery userQuery = DynamicQueryFactoryUtil.forClass(User.class, "user",PortalClassLoaderUtil.getClassLoader());
Disjunction disjunction = RestrictionsFactoryUtil.disjunction();
disjunction.add(RestrictionsFactoryUtil.eq("user.userId",12206L));
disjunction.add(RestrictionsFactoryUtil.like("user.emailAddress", "%adit%"));
userQuery.add(disjunction);
try {
List<User> userList = UserLocalServiceUtil.dynamicQuery(userQuery);
for (User user : userList) {
System.out.println("User Id=>>"+user.getUserId()+" User Name=>>"+user.getFirstName());
}
} catch (SystemException e2) {
e2.printStackTrace();
}



Second way

/**
* SELECT * FROM user_ user WHERE user.userId = 12206 OR user.emailAddress like '%adit%';
*/
DynamicQuery userQuery = DynamicQueryFactoryUtil.forClass(User.class, "user",PortalClassLoaderUtil.getClassLoader());
userQuery.add(RestrictionsFactoryUtil.or(RestrictionsFactoryUtil.eq("user.userId",12206L), RestrictionsFactoryUtil.like("user.emailAddress", "%adit%")));
try {
List<User> userList = UserLocalServiceUtil.dynamicQuery(userQuery);
for (User user : userList) {
System.out.println("User Id==>>"+user.getUserId()+" User Name==>>"+user.getFirstName());
}
} catch (SystemException e2) {
e2.printStackTrace();
}


Hope this will Help....

Related Post:-

No comments:

Post a Comment

Total Pageviews

1039181

Number Of Unique Visitor

Free counters!