Помогите у меня проблема с запросом выбора в JPA - PullRequest
0 голосов
/ 29 ноября 2008

У меня проблема, я хочу

выберите название журнала из журнала

и я уже импортирую всю необходимую библиотеку

и

Запрос q = EntityManger.createQuery ("ВЫБЕРИТЕ имя_магазин ИЗ журнала");

Список результатов = (Список) q.getResultList ();

Для (Sting s: результат)

System.out.println (с);

но когда я запускаю этот код, это ошибка. Кто-нибудь может мне помочь? Thx

это ошибка при запуске программы

Исключение в потоке "AWT-EventQueue-0" java.lang.Error: java.lang.reflect.InvocationTargetException в org.jdesktop.application.ApplicationAction.actionFailed (ApplicationAction.java:859) в org.jdesktop.application.ApplicationAction.noProxyActionPerformed (ApplicationAction.java:665) в org.jdesktop.application.ApplicationAction.actionPerformed (ApplicationAction.java:698) в javax.swing.AbstractButton.fireActionPerformed (AbstractButton.java:1995) в javax.swing.AbstractButton $ Handler.actionPerformed (AbstractButton.java:2318) в javax.swing.DefaultButtonModel.fireActionPerformed (DefaultButtonModel.java:387) в javax.swing.DefaultButtonModel.setPressed (DefaultButtonModel.java:242) на javax.swing.AbstractButton.doClick (AbstractButton.java:357) на javax.swing.plaf.basic.BasicMenuItemUI.doClick (BasicMenuItemUI.java:1220) в javax.swing.plaf.basic.BasicMenuItemUI $ Handler.mouseReleased (BasicMenuItemUI.java:1261) на java.awt.AWTEventMulticaster.mouseReleased (AWTEventMulticaster.java:272) в java.awt.Component.processMouseEvent (Component.java:6041) в javax.swing.JComponent.processMouseEvent (JComponent.java:3265) в java.awt.Component.processEvent (Component.java:5806) в java.awt.Container.processEvent (Container.java:2058) в java.awt.Component.dispatchEventImpl (Component.java:4413) в java.awt.Container.dispatchEventImpl (Container.java:2116) в java.awt.Component.dispatchEvent (Component.java:4243) в java.awt.LightweightDispatcher.retargetMouseEvent (Container.java:4322) в java.awt.LightweightDispatcher.processMouseEvent (Container.java:3986) в java.awt.LightweightDispatcher.dispatchEvent (Container.java:3916) в java.awt.Container.dispatchEventImpl (Container.java:2102) в java.awt.Window.dispatchEventImpl (Window.java:2440) в java.awt.Component.dispatchEvent (Component.java:4243) в java.awt.EventQueue.dispatchEvent (EventQueue.java:599) в java.awt.EventDispatchThread.pumpOneEventForFilters (EventDispatchThread.java:273) в java.awt.EventDispatchThread.pumpEventsForFilter (EventDispatchThread.java:183) в java.awt.EventDispatchThread.pumpEventsForHierarchy (EventDispatchThread.java:173) в java.awt.EventDispatchThread.pumpEvents (EventDispatchThread.java:168) в java.awt.EventDispatchThread.pumpEvents (EventDispatchThread.java:160) в java.awt.EventDispatchThread.run (EventDispatchThread.java:121) Вызванный: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Метод) at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) в java.lang.reflect.Method.invoke (Method.java:597) в org.jdesktop.application.ApplicationAction.noProxyActionPerformed (ApplicationAction.java:662) ... еще 29 причин: java.lang.IllegalArgumentException: An исключение произошло при создании запрос в EntityManager в oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerImpl.createQuery (EntityManagerImpl.java:209)at tugas_rpl.Tugas_RPLView.Iseng (Tugas_RPLView.java:734) ... еще 34 причины: исключение [TOPLINK-8034] (Oracle TopLink Essentials - 2.0.1 (сборка b09d-fcs (06.12.2007))): oracle.toplink.essentials.exceptions.EJBQLException Описание исключения: ошибка компиляции запрос [Выберите m.Name из журнал м]. Неизвестный тип абстрактной схемы [Журнал]. в oracle.toplink.essentials.exceptions.EJBQLException.unknownAbstractSchemaType (EJBQLException.java:494) в oracle.toplink.essentials.internal.parsing.ParseTreeContext.classForSchemaName (ParseTreeContext.java:163) в oracle.toplink.essentials.internal.parsing.VariableNode.resolveClass (VariableNode.java:280) на oracle.toplink.essentials.internal.parsing.DotNode.resolveMapping (DotNode.java:254) в oracle.toplink.essentials.internal.parsing.DotNode.endsWithDirectToField (DotNode.java:213) в oracle.toplink.essentials.internal.parsing.SelectNode.selectingDirectToField (SelectNode.java:440) в oracle.toplink.essentials.internal.parsing.SelectNode.hasOneToOneSelected (SelectNode.java:265) в oracle.toplink.essentials.internal.parsing.SelectNode.hasOneToOneSelected (SelectNode.java:222) в oracle.toplink.essentials.internal.parsing.SelectGenerationContext.computeUseParallelExpressions (SelectGenerationContext.java:105) на oracle.toplink.essentials.internal.parsing.SelectGenerationContext. (SelectGenerationContext.java:88) в oracle.toplink.essentials.internal.parsing.ParseTree.buildContextForReadQuery (ParseTree.java:382) в oracle.toplink.essentials.internal.parsing.ParseTree.buildContext (ParseTree.java:370) в oracle.toplink.essentials.internal.parsing.EJBQLParseTree.buildContext (EJBQLParseTree.java:68) на oracle.toplink.essentials.internal.parsing.EJBQLParseTree.populateQuery (EJBQLParseTree.java:107) в oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.buildEJBQLDatabaseQuery (EJBQueryImpl.java:219) в oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.buildEJBQLDatabaseQuery (EJBQueryImpl.java:189) в oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.buildEJBQLDatabaseQuery (EJBQueryImpl.java:153) на oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl. (EJBQueryImpl.java:114) на oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl. (EJBQueryImpl.java:99) на oracle.toplink.essentials.internal.ejb.cmp3.EJBQueryImpl. (EJBQueryImpl.java:86) в oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerImpl.createQuery (EntityManagerImpl.java:204) ... еще 35

Я уже пробовал предложение Винсента Рамдхани, Гудмундура Бьярни

Запрос q = entityManager.createQuery («Выбрать имя из журнала m»);

Результат списка = (Список) q.getResultList ();

Для (Sting s: результат)

System.out.print (с); * 1 036 *

но все равно ошибка

вот какую библиотеку и переменную я использую

частный javax.persistence.EntityManager entityManager;

import org.jdesktop.application.Action;

import org.jdesktop.application.ResourceMap;

import org.jdesktop.application.SingleFrameApplication;

import org.jdesktop.application.FrameView;

import org.jdesktop.application.TaskMonitor;

import org.jdesktop.application.Task;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.ArrayList;

import java.util.List;

import javax.swing.Timer;

import javax.swing.Icon;

import javax.swing.JDialog;

import javax.swing.JFrame;

import javax.swing.event.ListSelectionEvent;

import javax.swing.event.ListSelectionListener;

import org.jdesktop.beansbinding.AbstractBindingListener;

import org.jdesktop.beansbinding.Binding;

import org.jdesktop.beansbinding.PropertyStateEvent;

import javax.persistence. *;

Ответы [ 5 ]

2 голосов
/ 29 ноября 2008

Ответ находится прямо в стеке вызовов для вашего исключения:

Error compiling the query [Select m.Jenis_Motor from motor m]. Unknown abstract schema type [motor].

Это не проблема с вашим запросом в журнале, а другой некорректный запрос - вероятно, именованный запрос, определенный где-то еще.

2 голосов
/ 29 ноября 2008

Вы, вероятно, должны сказать, что именно ошибка.

Однако, если у вас есть журнал о сущностях, запрос должен быть:

 select m from Magazine m

Если вы хотите все журналы.

1 голос
/ 03 июля 2012

Вы переименовали свой класс?

Имя класса может отличаться от имени, используемого в именованном запросе

1 голос
/ 29 ноября 2008

Чтобы это работало, вам нужен объект, определенный следующим образом:

@Entity
@Table(name = "magazines")
public class Magazine {
  /*
   * Some more attributes
   */

  @Column(name = "name_magazine")
  private String name;

  /*
   * Constructors, getters and setters
   */
}

Кроме того, вам нужен файл persistence.xml, указывающий на вашу сущность. Если все это на месте, этот запрос должен сработать и дать вам список всех журналов.

from Magazine m

Указанный вами запрос является проекцией этого, и для объекта, который я показал выше, он должен быть

select m.name from Magazine m 

Надеюсь, это поможет. :)

0 голосов
/ 14 февраля 2018

Если вы используете JPA, тогда в Query Вам нужно написать className и object следующим образом

Query q = EntityManger.createQuery ("SELECT name_magazine e FROM Magazine e");

e является объектом класса Magazine. и если вы столкнулись с этим исключением произошло при создании запроса в EntityManager Проверьте ваш файл persistance.xml, в который нужно добавить класс после этого тега единицы постоянства

<class>PackageName.className</class>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...