<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <title>SessionFactory Throwing Exception in Custom SQL</title>
  <link rel="self" href="https://liferay.dev/c/message_boards/find_thread?p_l_id=119785294&amp;threadId=118678184" />
  <subtitle>SessionFactory Throwing Exception in Custom SQL</subtitle>
  <id>https://liferay.dev/c/message_boards/find_thread?p_l_id=119785294&amp;threadId=118678184</id>
  <updated>2026-04-03T18:51:48Z</updated>
  <dc:date>2026-04-03T18:51:48Z</dc:date>
  <entry>
    <title>RE: SessionFactory Throwing Exception in Custom SQL</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=119572374" />
    <author>
      <name>André Bergmann</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=119572374</id>
    <updated>2020-07-09T18:59:19Z</updated>
    <published>2020-07-09T18:59:19Z</published>
    <summary type="html">This also works:&lt;br /&gt; Session session = UserLocalServiceUtil.getService().getBasePersistence().openSession();</summary>
    <dc:creator>André Bergmann</dc:creator>
    <dc:date>2020-07-09T18:59:19Z</dc:date>
  </entry>
  <entry>
    <title>RE: SessionFactory Throwing Exception in Custom SQL</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=118725454" />
    <author>
      <name>Nirav Prajapati</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=118725454</id>
    <updated>2020-03-12T05:25:24Z</updated>
    <published>2020-03-12T05:25:24Z</published>
    <summary type="html">Thank You &lt;strong&gt;Mohammed Yasin,&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;​​​​​​​It&amp;#39;s working fine for me.</summary>
    <dc:creator>Nirav Prajapati</dc:creator>
    <dc:date>2020-03-12T05:25:24Z</dc:date>
  </entry>
  <entry>
    <title>RE: SessionFactory Throwing Exception in Custom SQL</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=118717391" />
    <author>
      <name>Amos Fong</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=118717391</id>
    <updated>2020-03-11T15:48:55Z</updated>
    <published>2020-03-11T15:48:55Z</published>
    <summary type="html">Oh I think I wasn&amp;#39;t clear. Even if you get the User object in addEntity, the hibernate mappings are still in the portal classloader (see the error you get).I meant to change your SQL query to (select userId from User_....), then with that userId get the actual users back.</summary>
    <dc:creator>Amos Fong</dc:creator>
    <dc:date>2020-03-11T15:48:55Z</dc:date>
  </entry>
  <entry>
    <title>RE: SessionFactory Throwing Exception in Custom SQL</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=118719809" />
    <author>
      <name>Mohammed Yasin</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=118719809</id>
    <updated>2020-03-11T12:40:00Z</updated>
    <published>2020-03-11T12:40:00Z</published>
    <summary type="html">&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;&lt;blockquote&gt;&lt;strong&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SessionFactory sessionFactory = (SessionFactory) PortalBeanLocatorUtil.locate("liferaySessionFactory");&lt;/strong&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Session session = null;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;List&amp;lt;User&amp;gt; lrUsers = new LinkedList&amp;lt;User&amp;gt;();&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;List&amp;lt;Long&amp;gt; userOrgIds = getUsersAllOrgIds(userSoldToOrgId);&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;try {&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;strong&gt;session = &amp;nbsp;sessionFactory.openSession()&lt;/strong&gt;;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;StringBuilder sqlBuilder = new StringBuilder();&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;sqlBuilder.append(" SELECT DISTINCT u.* FROM User_ u, Users_Orgs uo, Organization_ org ")&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;.append(" WHERE u.userId = uo.userId ")&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;.append(" and org.organizationId = uo.organizationId ")&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;.append(" and org.organizationId in ( " + userOrgIdsCommaSeparated + " ) ")&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;.append(" ORDER BY u.firstName, u.lastName ");&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SQLQuery sqlQuery = session.createSQLQuery(sqlBuilder.toString());&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; sqlQuery.setCacheable(true);&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;strong&gt;sqlQuery.addEntity("User_", &amp;nbsp;PortalClassLoaderUtil.getClassLoader().loadClass("com.liferay.portal.model.impl.UserImpl"));&lt;/strong&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;lrUsers = &amp;nbsp;(List&amp;lt;User&amp;gt;) QueryUtil.list(sqlQuery, getDialect(), start, end);&lt;br&gt;&lt;br&gt;&lt;/blockquote&gt;&lt;br&gt;Hi ,&lt;br&gt;Above code&amp;nbsp;is correct and is working fine till 7.1 , its throwing &lt;strong&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/strong&gt;&amp;nbsp;" com.liferay.portal.kernel.bean.BeanLocatorException with No bean named 'liferaySessionFactory'"&amp;nbsp; &amp;nbsp; in 7.3 also ,&amp;nbsp; Below is a workaround which is working in 7.3 also might work in 7.2.&lt;br&gt;&lt;br&gt;&lt;pre&gt;&lt;code&gt;public List&amp;lt;user&amp;gt; searchAllUser() {
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;Session session = _basePersistence.openSession();
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;String sql = "SELECT * FROM USER_ &amp;amp;nbsp;WHERE companyId = " + PortalUtil.getDefaultCompanyId();
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;SQLQuery q = session.createSQLQuery(sql);
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;q.setCacheable(Boolean.TRUE);&amp;lt;/user&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;try {
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;q.addEntity("User_",
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;PortalClassLoaderUtil.getClassLoader().loadClass("com.liferay.portal.model.impl.UserImpl"));
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;} catch (ClassNotFoundException e) {
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;_log.error(e);
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}
        List&amp;lt;user&amp;gt; users = (List&amp;lt;user&amp;gt;) QueryUtil.list(q, getDialect(), -1, -1);
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;session.close();
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return users;
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;@Reference
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;private BasePersistence _basePersistence;&amp;lt;/user&amp;gt;&amp;lt;/user&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/body&gt;&lt;/html&gt;</summary>
    <dc:creator>Mohammed Yasin</dc:creator>
    <dc:date>2020-03-11T12:40:00Z</dc:date>
  </entry>
  <entry>
    <title>RE: SessionFactory Throwing Exception in Custom SQL</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=118715365" />
    <author>
      <name>Nirav Prajapati</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=118715365</id>
    <updated>2020-03-11T08:37:56Z</updated>
    <published>2020-03-11T08:37:56Z</published>
    <summary type="html">Hi Amos Fong,&lt;br /&gt;I have tried based on your suggestion and below is my code,&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;User userObj = UserLocalServiceUtil.getUser(userId);&lt;br /&gt;sqlQuery.addEntity(&amp;#34;User_&amp;#34;,  userObj.getClass());&lt;br /&gt;lrUsers =  (List&amp;lt;User&amp;gt;) QueryUtil.list(sqlQuery, getDialect(), start, end);&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span style="font-size: 16px;"&gt;Afterward, got error message like, &amp;#34;&lt;strong&gt;com.liferay.portal.kernel.dao.orm.ORMException: org.hibernate.MappingException: Unknown entity: com.liferay.portal.model.impl.UserImpl&lt;/strong&gt;&amp;#34;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;Let me know if you need any more details.</summary>
    <dc:creator>Nirav Prajapati</dc:creator>
    <dc:date>2020-03-11T08:37:56Z</dc:date>
  </entry>
  <entry>
    <title>RE: SessionFactory Throwing Exception in Custom SQL</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=118709512" />
    <author>
      <name>Amos Fong</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=118709512</id>
    <updated>2020-03-10T16:56:10Z</updated>
    <published>2020-03-10T16:56:10Z</published>
    <summary type="html">Try openSession() like in this finder:&lt;a href="https://github.com/liferay/liferay-portal/blob/master/modules/apps/blogs/blogs-service/src/main/java/com/liferay/blogs/service/persistence/impl/BlogsEntryFinderImpl.java"&gt;https://github.com/liferay/liferay-portal/blob/master/modules/apps/blogs/blogs-service/src/main/java/com/liferay/blogs/service/persistence/impl/BlogsEntryFinderImpl.java&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;strong&gt;&lt;strong&gt;sqlQuery.addEntity(&amp;#34;User_&amp;#34;,  PortalClassLoaderUtil.getClassLoader().loadClass(&amp;#34;com.liferay.portal.model.impl.UserImpl&amp;#34;));&lt;/strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Assuming you&amp;#39;re in your own module, I think this won&amp;#39;t work. An option you can do is get the userIds in your query and then retrieve the User object from the userId from the user local service.</summary>
    <dc:creator>Amos Fong</dc:creator>
    <dc:date>2020-03-10T16:56:10Z</dc:date>
  </entry>
  <entry>
    <title>SessionFactory Throwing Exception in Custom SQL</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=118678183" />
    <author>
      <name>Nirav Prajapati</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=118678183</id>
    <updated>2020-03-06T10:51:34Z</updated>
    <published>2020-03-06T10:51:34Z</published>
    <summary type="html">Hello Friends,&lt;br /&gt;&lt;br /&gt;I am using Liferay 7.2 .&lt;br /&gt;&lt;br /&gt;I have created Custom SQL and inside FinderImpl, trying to access SessionFactory but it&amp;#39;s showing error as, &lt;br /&gt;&lt;strong&gt;                                     com.liferay.portal.kernel.bean.BeanLocatorException with No bean named &amp;#39;liferaySessionFactory&amp;#39; available.&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-size: 16px;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: 16px;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: 16px;"&gt;Following is my code,&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: 16px;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;        SessionFactory sessionFactory = (SessionFactory) PortalBeanLocatorUtil.locate(&amp;#34;liferaySessionFactory&amp;#34;);&lt;/strong&gt;&lt;br /&gt;        Session session = null;&lt;br /&gt;        &lt;br /&gt;        List&amp;lt;User&amp;gt; lrUsers = new LinkedList&amp;lt;User&amp;gt;();&lt;br /&gt;        List&amp;lt;Long&amp;gt; userOrgIds = getUsersAllOrgIds(userSoldToOrgId);&lt;br /&gt;      &lt;br /&gt;            try {&lt;br /&gt;                &lt;strong&gt;session =  sessionFactory.openSession()&lt;/strong&gt;;&lt;br /&gt;                StringBuilder sqlBuilder = new StringBuilder();&lt;br /&gt;                sqlBuilder.append(&amp;#34; SELECT DISTINCT u.* FROM User_ u, Users_Orgs uo, Organization_ org &amp;#34;)&lt;br /&gt;                    .append(&amp;#34; WHERE u.userId = uo.userId &amp;#34;)&lt;br /&gt;                    .append(&amp;#34; and org.organizationId = uo.organizationId &amp;#34;)&lt;br /&gt;                    .append(&amp;#34; and org.organizationId in ( &amp;#34; + userOrgIdsCommaSeparated + &amp;#34; ) &amp;#34;)&lt;br /&gt;                    .append(&amp;#34; ORDER BY u.firstName, u.lastName &amp;#34;);                &lt;br /&gt;                SQLQuery sqlQuery = session.createSQLQuery(sqlBuilder.toString());&lt;br /&gt;                sqlQuery.setCacheable(true);&lt;br /&gt;                &lt;strong&gt;sqlQuery.addEntity(&amp;#34;User_&amp;#34;,  PortalClassLoaderUtil.getClassLoader().loadClass(&amp;#34;com.liferay.portal.model.impl.UserImpl&amp;#34;));&lt;/strong&gt;&lt;br /&gt;                &lt;br /&gt;                lrUsers =  (List&amp;lt;User&amp;gt;) QueryUtil.list(sqlQuery, getDialect(), start, end);&lt;br /&gt;&lt;br /&gt;Please help me to solve it.&lt;br /&gt;&lt;br /&gt;Thanks in advance.&lt;strong&gt;&lt;span style="font-size: 16px;"&gt;&lt;/span&gt;&lt;/strong&gt;</summary>
    <dc:creator>Nirav Prajapati</dc:creator>
    <dc:date>2020-03-06T10:51:34Z</dc:date>
  </entry>
</feed>
