Note that there are some explanatory texts on larger screens.

plurals
  1. PONullPointerException when extending persistent CFC
    text
    copied!<p>The error occurs when attempting to extend Unit with County, specifically, when restarting the application to initialize ORM. [Note: I'm attempting single-table inheritance]</p> <p>ORM is managing my DB schema: <code>this.ormsettings.dbcreate=dropcreate</code></p> <p>When I remove County.cfc from the models directory, ORM initializes and the application starts normally. When I put County.cfc back into the models directory, the error occurs again. </p> <p>ColdFusion version 10,282462 MSSQL IIS</p> <p>Unit:</p> <pre><code>&lt;cfcomponent persistent="true" entityname="Unit" table="Units" discriminatorColumn="type"&gt; &lt;cfproperty name="id" fieldtype="id" column="unit_id" generator="identity"&gt; &lt;cfproperty name="name" default="" type="string" length="50"&gt; &lt;cfproperty name="description" type="string" sqltype="varchar(max)" default=""&gt; &lt;cfproperty name="active" type="boolean" default="true"&gt; &lt;/cfcomponent&gt; </code></pre> <p>County:</p> <pre><code>&lt;cfcomponent persistent="true" entityname="County" table="Units" extends="Unit" discriminatorValue="county"&gt; &lt;cfproperty name="officeAddress" type="string"&gt; &lt;/cfcomponent&gt; </code></pre> <p>StackTrace:</p> <pre><code>java.lang.NullPointerException at org.hibernate.mapping.PersistentClass.createPrimaryKey(PersistentClass.java:322) at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:405) at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:321) at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:172) at org.hibernate.cfg.Configuration.add(Configuration.java:771) at org.hibernate.cfg.Configuration.addDocument(Configuration.java:586) at coldfusion.orm.hibernate.HibernateConfiguration.buildConfiguration(HibernateConfiguration.java:611) at coldfusion.orm.hibernate.HibernateConfiguration.initHibernateConfiguration(HibernateConfiguration.java:208) at coldfusion.orm.hibernate.HibernateConfiguration.&lt;init&gt;(HibernateConfiguration.java:181) at coldfusion.orm.hibernate.ConfigurationManager.initConfiguration(ConfigurationManager.java:67) at coldfusion.orm.hibernate.HibernateProvider.InitializeORMForApplication(HibernateProvider.java:185) at coldfusion.orm.hibernate.HibernateProvider.onPageRequestStart(HibernateProvider.java:151) at coldfusion.filter.ApplicationFilter.firePageRequestStart(ApplicationFilter.java:599) at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:407) at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48) at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40) at coldfusion.filter.PathFilter.invoke(PathFilter.java:112) at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:94) at coldfusion.filter.BrowserDebugFilter.invoke(BrowserDebugFilter.java:79) at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28) at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38) at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46) at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38) at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22) at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62) at coldfusion.CfmServlet.service(CfmServlet.java:204) at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42) at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:414) at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:203) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:298) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) </code></pre> <p>Odd thing is that I'm already doing something similar with another entity (DiscussionPost extends Post):</p> <p>Post:</p> <pre><code>&lt;cfcomponent persistent="true" entityname="Post" table="Posts" discriminatorColumn="type"&gt; &lt;cfproperty name="id" fieldtype="id" column="post_id" generator="identity"&gt; &lt;cfproperty name="promotions" fieldtype="one-to-many" cfc="PostPromotion" fkcolumn="post_id" singularname="promotion"&gt; &lt;cfproperty name="comments" fieldtype="one-to-many" cfc="PostComment" fkcolumn="post_id" singularname="comment"&gt; &lt;cfproperty name="user" fieldtype="many-to-one" cfc="User" fkcolumn="user_id"&gt; &lt;cfproperty name="text" type="string" sqltype="varchar(1000)"&gt; &lt;cfproperty name="timestamp" type="date" ormtype="timestamp"&gt; &lt;/cfcomponent&gt; </code></pre> <p>DiscussionPost:</p> <pre><code>&lt;cfcomponent persistent="true" entityname="DiscussionPost" table="Posts" extends="Post" discriminatorValue="discussionpost"&gt; &lt;cfproperty name="discussion" fieldtype="many-to-one" cfc="Discussion" fkcolumn="discussion_id"&gt; &lt;cfproperty name="title" type="string" sqltype="varchar(200)"&gt; &lt;/cfcomponent&gt; </code></pre> <p>What am I missing?</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload