Can someone help me figure out why this .form compiles yet the query to perform a search throws this error?
I have one entity manager,at startup "query and list set the table with all data from <splashtemplateda.Content>
combobox and textfield and button(action) should config search specs and refresh table with searchQuey1 and searchList1 using the same entitymanager that the the start up query uses (the one that displays SELECT *.
Thanks
-Steve
Error message:
init:
deps-jar:
compile:
run:
[TopLink Info]: 2008.05.06 04:17:40.048--ServerSession(21662929)--TopLink, version: Oracle TopLink Essentials - 2.0.1 (Build
b09d-fcs (12/06/2007))
[TopLink Info]: 2008.05.06 04:17:40.672--ServerSession(21662929)--
file:/C:/Users/depot/Documents/ceyesuma/program_cache/in_progress/Enterprise/splashbookinprogress/target/SplashTemplateDA/bui
ld/classes/-splashbookdbPU login successful
May 6, 2008 4:17:40 AM org.jdesktop.application.Application$1 run
SEVERE: Application class splashtemplateda.SplashTemplateDAApp failed to launch
java.lang.IllegalArgumentException: An exception occured while creating a query in EntityManager
at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerImpl.createQuery(EntityManagerImpl.java:209)
at splashtemplateda.SplashTemplateDAView.initComponents(SplashTemplateDAView.java:342)
at splashtemplateda.SplashTemplateDAView.<init>(SplashTemplateDAView.java:40)
at splashtemplateda.SplashTemplateDAApp.startup(SplashTemplateDAApp.java:19)
at org.jdesktop.application.Application$1.run(Application.java:171)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Caused by: Exception [TOPLINK-8025] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))):
oracle.toplink.essentials.exceptions.EJBQLException
Exception Description: Syntax error parsing the query [:partial], line 1, column 1: unexpected token [:partial].
Internal Exception: line 1:1: unexpected token: :partial
at oracle.toplink.essentials.exceptions.EJBQLException.unexpectedToken(EJBQLException.java:389)
at oracle.toplink.essentials.internal.parsing.ejbql.EJBQLParser.handleANTLRException(EJBQLParser.java:350)
at oracle.toplink.essentials.internal.parsing.ejbql.EJBQLParser.addError(EJBQLParser.java:278)
at oracle.toplink.essentials.internal.parsing.ejbql.EJBQLParser.reportError(EJBQLParser.java:378)
at oracle.toplink.essentials.internal.parsing.ejbql.antlr273.EJBQLParser.document(EJBQLParser.java:156)
at oracle.toplink.essentials.internal.parsing.ejbql.EJBQLParser.parse(EJBQLParser.java:166)
at oracle.toplink.essentials.internal.parsing.ejbql.EJBQLParser.buildParseTree(EJBQLParser.java:127)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:215)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:189)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:153)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.<init>(EJBQueryImpl.java:114)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.<init>(EJBQueryImpl.java:99)
at oracle.toplink.essentials.internal.ejb.cmp3.EJBQueryImpl.<init>(EJBQueryImpl.java:86)
at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerImpl.createQuery(EntityManagerImpl.java:204)
... 12 more
Caused by: line 1:1: unexpected token: :partial
at oracle.toplink.essentials.internal.parsing.ejbql.antlr273.EJBQLParser.document(EJBQLParser.java:150)
... 21 more
Exception in thread "AWT-EventQueue-0" java.lang.Error: Application class splashtemplateda.SplashTemplateDAApp failed to
launch
at org.jdesktop.application.Application$1.run(Application.java:177)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Caused by: java.lang.IllegalArgumentException: An exception occured while creating a query in EntityManager
at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerImpl.createQuery(EntityManagerImpl.java:209)
at splashtemplateda.SplashTemplateDAView.initComponents(SplashTemplateDAView.java:342)
at splashtemplateda.SplashTemplateDAView.<init>(SplashTemplateDAView.java:40)
at splashtemplateda.SplashTemplateDAApp.startup(SplashTemplateDAApp.java:19)
at org.jdesktop.application.Application$1.run(Application.java:171)
... 8 more
Caused by: Exception [TOPLINK-8025] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))):
oracle.toplink.essentials.exceptions.EJBQLException
Exception Description: Syntax error parsing the query [:partial], line 1, column 1: unexpected token [:partial].
Internal Exception: line 1:1: unexpected token: :partial
at oracle.toplink.essentials.exceptions.EJBQLException.unexpectedToken(EJBQLException.java:389)
at oracle.toplink.essentials.internal.parsing.ejbql.EJBQLParser.handleANTLRException(EJBQLParser.java:350)
at oracle.toplink.essentials.internal.parsing.ejbql.EJBQLParser.addError(EJBQLParser.java:278)
at oracle.toplink.essentials.internal.parsing.ejbql.EJBQLParser.reportError(EJBQLParser.java:378)
at oracle.toplink.essentials.internal.parsing.ejbql.antlr273.EJBQLParser.document(EJBQLParser.java:156)
at oracle.toplink.essentials.internal.parsing.ejbql.EJBQLParser.parse(EJBQLParser.java:166)
at oracle.toplink.essentials.internal.parsing.ejbql.EJBQLParser.buildParseTree(EJBQLParser.java:127)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:215)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:189)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:153)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.<init>(EJBQueryImpl.java:114)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.<init>(EJBQueryImpl.java:99)
at oracle.toplink.essentials.internal.ejb.cmp3.EJBQueryImpl.<init>(EJBQueryImpl.java:86)
at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerImpl.createQuery(EntityManagerImpl.java:204)
... 12 more
Caused by: line 1:1: unexpected token: :partial
at oracle.toplink.essentials.internal.parsing.ejbql.antlr273.EJBQLParser.document(EJBQLParser.java:150)
... 21 more
BUILD SUCCESSFUL (total time: 4 seconds)
private void initComponents() {
bindingGroup = new org.jdesktop.beansbinding.BindingGroup();
<b>
...
entityManager = java.beans.Beans.isDesignTime() ? null : javax.persistence.Persistence.createEntityManagerFactory
("splashbookdbPU").createEntityManager();
org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance
(splashtemplateda.SplashTemplateDAApp.class).getContext().getResourceMap(SplashTemplateDAView.class);
query = java.beans.Beans.isDesignTime() ? null : entityManager.createQuery(resourceMap.getString("query.query"));
//NOI18N
list = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() :
org.jdesktop.observablecollections.ObservableCollections.observableList(query.getResultList());
searchQuery1 = java.beans.Beans.isDesignTime() ? null : entityManager.createQuery(resourceMap.getString
("searchQuery1.query")); // NOI18N
searchList1 = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : searchQuery1.getResultList();
mainPanel.setName("mainPanel"); // NOI18N </b>
masterScrollPane.setName("masterScrollPane"); // NOI18N
masterTable.setName("masterTable"); // NOI
A combo box to set what kind of (search)(relavent actionCommand()//aparently the var holdQuery is unused at present;
private void searchJComboBox1ItemStateChanged(java.awt.event.ItemEvent evt) {
<b>if (searchJComboBox1.getSelectedItem().equals("by Artist")) {
String holdQuery = searchJComboBox1.getSelectedItem().toString();
setSearchInput(holdQuery);
//searchJTextField1.setText(getSearchQuery1());
}
if (searchJComboBox1.getSelectedItem().equals("by Song")) {
String holdQuery = searchJComboBox1.getSelectedItem().toString();
setSearchInput(holdQuery);
// searchJTextField1.setText(getSearchQuery1());
}
}
</b>
concatenate (textfield input to SQL) and create query.
the var partial is a entered as :partial in the properties window for the query of the created query searchQuery1.
@Action
<b> public Task searchSplash() {
if (searchJComboBox1.getSelectedItem().equals("by Artist")) {
String like = searchJTextField1.getText();
String partial = ("SELECT c FROM content c WHERE c.artist LIKE \"%" + like + "%\"");
Query searchQuery1 = (Query) entityManager.createQuery(partial);
query.setParameter("like", "searchJTextField1.getText()");
List<Content> contents = query.getResultList();
//searchJTextField1.setText(getSearchQuery());
}
if (searchJComboBox1.getSelectedItem().equals("by Song")) {
String like = searchJTextField1.getText();
String partial = ("SELECT c FROM content c WHERE c.song LIKE \"%" + like + "%\"");
Query searchQuery1 = (Query) entityManager.createQuery(partial);
query.setParameter("like", "searchJTextField1.getText()");
List<Content> contents = query.getResultList();
//searchJTextField1.setText(getSearchQuery());
}
return new SearchSplashTask(getApplication());
}
</b>
To transfer searchQuery1 to table;
private class SearchSplashTask extends Task {
SearchSplashTask(org.jdesktop.application.Application app) {
super(app);
}
@SuppressWarnings("unchecked")
@Override
protected Void doInBackground() {
try {
setProgress(0, 0, 4);
setMessage("Rolling back the current changes...");
setProgress(1, 0, 4);
entityManager.getTransaction().rollback();
Thread.sleep(1000L); // remove for real app
setProgress(2, 0, 4);
setMessage("Starting a new transaction...");
entityManager.getTransaction().begin();
Thread.sleep(500L); // remove for real app
setProgress(3, 0, 4);
<b>
setMessage("Fetching new data...");
java.util.Collection search = searchQuery1.getResultList();
</b>
/*
for (Object entity : data) {
entityManager.refresh(entity);
}
*/
Thread.sleep(1300L); // remove for real app
setProgress(4, 0, 4);
Thread.sleep(150L); // remove for real app
list.clear();
list.addAll(search);
} catch (InterruptedException ignore) {
}
return null;
}
@Override
protected void finished() {
setMessage("Done.");
setSaveNeeded(false);
}
}