Hi David, On Jan 22, 2008, at 3:48 PM, David Beer wrote:
Hi GuysThe Entry class is actually an entity I just changed the code to use native query as I was getting the same result using just createQuery. I have attached the Entry.class and the class containing the query (EntryQuery). As you can see in EntryQuery there is various code commented out, this is just where I have tried different things.When I return the list of results and try and display them in a JList with the following code:data = eq.getAll(); jList1.setListData((Vector<Entry>)data);
This code is incorrect. You can either create a trivial ListModel or create a Vector from the result. Vector<Entry> can be constructed from a Collection<Entry>:
Vector<Entry> myVector = new Vector<Entry>(List<Entry>).I wouldn't worry about the name of the DelegatingResultList artifact for now.
Craig
I get the following exception:java.lang.ClassCastException: org.apache.openjpa.kernel.DelegatingResultList cannot be cast to java.util.Vector at veilig.mainui.VeiligTopComponent.<init>(VeiligTopComponent.java:37) at veilig.mainui.VeiligTopComponent.getDefault(VeiligTopComponent.java: 94) at veilig.mainui.VeiligTopComponent $ResolvableHelper.readResolve(VeiligTopComponent.java:149)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun .reflect .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun .reflect .DelegatingMethodAccessorImpl .invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:597)at java.io.ObjectStreamClass.invokeReadResolve(ObjectStreamClass.java: 1061) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java: 1762) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.readObject(ObjectInputStream.java: 351) at org.netbeans.modules.settings.convertors.XMLSettingsSupport $SettingsRecognizer.readSerial(XMLSettingsSupport.java:542) at org.netbeans.modules.settings.convertors.XMLSettingsSupport $SettingsRecognizer.instanceCreate(XMLSettingsSupport.java:574) at org.netbeans.modules.settings.convertors.SerialDataConvertor $SettingsInstance.instanceCreate(SerialDataConvertor.java:415) [catch] at org .netbeans .core .windows .persistence .PersistenceManager .getTopComponentPersistentForID(PersistenceManager.java:513) at org .netbeans .core .windows .persistence .PersistenceManager.getTopComponentForID(PersistenceManager.java:618) at org .netbeans .core .windows .PersistenceHandler.getTopComponentForID(PersistenceHandler.java:422) at org .netbeans .core.windows.PersistenceHandler.load(PersistenceHandler.java:147) at org .netbeans.core.windows.WindowSystemImpl.load(WindowSystemImpl.java:69)at org.netbeans.core.NonGui$3.run(NonGui.java:205)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)Any help or guidance is very much appreciated. David Craig L Russell wrote:Hi David,One other thing that occurs to me is whether you're using the native query appropriately.I assume that Entry.class is *not* an Entity. It's just a plain old Java class with no persistence annotations.Perhaps we can help better if you would include your Entity.java and schema in the message. And the exception with stack trace.Regards, Craig On Jan 22, 2008, at 2:55 AM, David Beer wrote:Hi PatrickI will be able to get the exact information retruned later when I am back home.I am trying to display a list of the items returned from the query in a JList (javax.swing.JList). A JList takes either an array, a ListModel or a Vector; I was trying to use a Vectory as I can just add elements to it and not worry about memory allocation or the size of the Vector being too large.My point is that when I tried to cast the resulting data from the query I got an exception. Cannot Cast Delegate org.apache.openjpaI will get the exact data this evening when i get home Thanks David ----- Original Message ---- From: Patrick Linskey <[EMAIL PROTECTED]> To: [email protected]; [EMAIL PROTECTED] Sent: Monday, 21 January, 2008 11:52:15 PM Subject: Re: Understanding getResultList() Hi,and in return I am seeing a list containing a delegate and a persistence object.Can you include a printout of the data you see, or some more detailedexplanation, such as class names of the instances returned?display. This is fine with a small amount of records but what about alarge amount of records.Are you concerned about the overhead involved in iterating through aresult list fully just to copy it over to the Vector? If the framework that you are using does not provide any interface-based support, then you might not have many options. One idea might be to try to create asubclass of Vector that overrides most methods to just return values from the actual backing list. -Patrick On Jan 21, 2008 3:34 PM, David Beer <[EMAIL PROTECTED]> wrote:Hi All I have a n issue with using Query getResultList(), I am executing a nativeQuery("SELECT * FROM ENTRY", Entry.class). And performing the query like so List<Entry> results =(List<Entry>)query.getResultList();and in return I am seeing a list containing a delegate and a persistence object. My main problem is that I am trying to display the resulting datathatcomes back in a JList, in order to set the list data on a JList youhaveto have the data in a Vector. So when I tried to cast the List to aVector I got an exception. When I perform the same query using TopLink I get back a list ofObjectsof the type and no extra information. At the moment I am goingthroughthe results and getting each Object element and adding to Vector todisplay. This is fine with a small amount of records but what about alarge amount of records. What is the best way of getting back just a list of Objects no additional data? Thanks David-- Patrick Linskey 202 669 5907Craig RussellArchitect, Sun Java Enterprise System http://java.sun.com/products/ jdo408 276-5638 mailto:[EMAIL PROTECTED] P.S. A good JDO? O, Gasp!/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package veilig.db.query; import java.util.List; import java.util.List; import java.util.Vector; import java.util.logging.Level; import java.util.logging.Logger; import javax.persistence.EntityManager; import javax.persistence.EntityTransaction; import javax.persistence.Query; import veilig.entry.Entry; import veilig.entry.Entry; import veilig.util.db.DatabaseConnection; /** * * @author david */ @SuppressWarnings("static-access") public class EntryQuery {private static final DatabaseConnection dbconn = DatabaseConnection.getInstance();private static EntryQuery instance = null; public EntryQuery() { } public static EntryQuery getInstance() { if (instance == null) { instance = new EntryQuery(); } return instance; } public List<Entry> getAll() { //List<Entry> results = null; EntityManager manager = dbconn.getEm(); EntityTransaction tx = manager.getTransaction(); tx.begin(); try { System.out.println("about to run query");Query query = manager.createNativeQuery("SELECT * FROM ENTRY", Entry.class); //Query query = manager.createQuery("SELECT a FROM Entry a");List<Entry> results = (List<Entry>)query.getResultList(); /*Vector<Entry> data = new Vector<Entry>(0, 1); for (Entry entry : results) { System.out.println("Name " + entry.getName()); /*Entry e = new Entry(); e.setId(entry.getId()); e.setEmail(entry.getEmail()); e.setName(entry.getName()); e.setPassword(entry.getPassword()); e.setUrl(entry.getUrl()); e.setUsername(entry.getUsername()); data.add(e); Entry e = entry; data.add(e); }*/ tx.commit(); return results; } catch (Exception exception) {Logger.getLogger(EntryQuery.class.getName()).log(Level.SEVERE, "Problem getting list of entries from databse", exception);tx.rollback(); return null; } } } package veilig.entry; import java.net.URL; import java.util.List; import java.util.Vector; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.OneToOne; @Entity public class Entry implements java.io.Serializable { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Integer id; private String name; private String username; private String email; //private URL url; private String url; private char[] password; @OneToMany(cascade=CascadeType.ALL) private List<AdditionalInformation> addInfo; /** * Constructor */ public Entry() { } /** * * @return id for this item */ public Integer getId() { return id; } /** * Sets the id * @param id to be used */ public void setId(Integer id) { this.id = id; } /** * Name * @return the name of the entry */ public String getName() { return name; } /** * Sets the name of the Entry * @param name to be used */ public void setName(String name) { this.name = name; } /** * Username related to the entry * @return username */ public String getUsername() { return username; } /** * Username related to the entry * @param username to be used */ public void setUsername(String username) { this.username = username; } /** * The email address associated with this entry * @return email address */ public String getEmail() { return email; } /** * Sets the email address for this Entry * @param email address for this entry */ public void setEmail(String email) { this.email = email; } /** * The url or web address for this Entry * @return url - web address */ public String getUrl() { return url; } /** * Sets the url - web address for this Entry * @param url - web address */ public void setUrl(String url) { this.url = url; } /** * A list of any additional information about the entry* @return a List containing one or many addition information objects*/ public List<AdditionalInformation> getAddInfo() { return addInfo; } /** * Adds a List of AdditionalInformation Objects * @param ai Ovewrites the current list with the new one */ public void setAddInfo(List<AdditionalInformation> ai) { this.addInfo = ai; } /** * Adds an object of AdditionalInformation to the list. * @param ai Additionalinformation object to be added */ public void addAdditInfo(AdditionalInformation ai) { if(addInfo == null) addInfo = new Vector<AdditionalInformation>(0,1); addInfo.add(ai); } public char[] getPassword() { return password; } public void setPassword(char[] password) { this.password = password; } @Override public String toString() { return this.name; } }
Craig Russell Architect, Sun Java Enterprise System http://java.sun.com/products/jdo 408 276-5638 mailto:[EMAIL PROTECTED] P.S. A good JDO? O, Gasp!
smime.p7s
Description: S/MIME cryptographic signature
