And my persistence.xml <persistence-unit name="OpenJPAPU" transaction-type="RESOURCE_LOCAL"> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> <class>test.model2.Wearhouse</class> <class>test.model2.Storagecategory</class> <properties> <property name = "openjpa.ConnectionDriverName" value = "com.mysql.jdbc.Driver"/> <property name = "openjpa.ConnectionURL" value = "jdbc:mysql://localhost:3306/openjpamanytomany"/> <property name = "openjpa.ConnectionUserName" value = "root"/> <property name = "openjpa.ConnectionPassword" value = "root"/> <property name = "openjpa.jdbc.SynchronizeMappings" value = "buildSchema(ForeignKeys=true)"/> </properties> </persistence-unit>
Shubbis Shubbis wrote: > > Hi again, > > Thanks for your patience and I am sorry for the late reply, but we are > only stationed at the offices three days a week. > > I must admit i don't understand what you mean by test harness. If you > could explain i will gladly post it. > > In the meantime I have created a new project and added OpenJPA > capabilities to this one in hopes of discovering what the problem is, but > alas I did not. > My new project is of a much simpler setup, it consists of the following > files. > > Main class for running simple test: > public static void main(String[] args) throws Exception { > EntityManagerFactory factory = > Persistence.createEntityManagerFactory("OpenJPAPU", > System.getProperties()); > EntityManager em = factory.createEntityManager(); > OpenJPAEntityManager o = OpenJPAPersistence.cast(em); > > WearhouseDAO wd = new WearhouseDAO(); > long starttid = System.currentTimeMillis(); > for(int i = 1; i <= 500; i++){ > Wearhouse w = wd.findById(o, i); > // System.out.println(w.getWearhouseName()); > } > System.out.println(System.currentTimeMillis() - starttid); > } > > > Wearhouse Entity class (same as before) > WearhouseDAO class using the following method: > public Wearhouse findById(OpenJPAEntityManager o, Integer id) { > try { > Wearhouse instance = o.find(Wearhouse.class, id); > return instance; > } catch (RuntimeException re) { > throw re; > } > } > > > Storagecategory Entity class (same as before) > StoragecategoryDAO class using the following method: > public Storagecategory findById(OpenJPAEntityManager o, Integer id) { > try { > Storagecategory instance = > o.find(Storagecategory.class, id); > return instance; > } catch (RuntimeException re) { > throw re; > } > } > > The database is still MySQL and this time I've let OpenJPA build the > schema. > > No difference in the resulting time.. > > Thanks for reading, > > Shub > > > Pinaki Poddar wrote: >> >> Hi, >> I ran the Wearhouse-StorageCategory model you have posted (thank you >> for a clean test). Against 500 categories and 200 wearhouses and a >> cardinality of 10 categories per wearhouse. The domain classes were >> enhanced at build-time. The database is MySQL and the tests ran in my >> pedestrian laptop. Here are the results for finding Wearhouses 500 times >> in a loop. >> >> Without connection pool : 2360 ms. >> With connection pool : 734ms >> >> Given these numbers are quite in contrast with your observations, I will >> request you to post the test harness you used to measure the number, so >> that we can investigate further. >> >> Few comments: >> 1. If performance is higher priority than ordering, consider using >> Set<> instead of List<> >> 2. Consider using a connection pool, if possible [1] >> >> [1] >> http://openjpa.apache.org/faq.html#FAQ-HowdoIenableconnectionpoolinginOpenJPA%253F >> >> Regards -- >> >> >> PS: "Aristotle maintained that women have fewer teeth than men; although >> he was twice married, it never occurred to him to verify this statement >> by examining his wives' mouths." -- >> The Impact of Science on Society, 1952 - Bertrand Russell >> >> > > -- View this message in context: http://n2.nabble.com/Slow-performance-with-OpenJPA-when-selecting-from-a-ManyToMany-relation.-tp2466994p2490426.html Sent from the OpenJPA Users mailing list archive at Nabble.com.