java - EclipseLink sql load script is not working -
i'm using eclipselink in intelij idea , i'm trying setup testing persistence unit rebuilds database every time tests run , populates database seed data.
this persistence unit in persistence.xml:
<persistence-unit name="testingunit"> <class>org.cba.entity.person</class> <class>org.cba.entity.infoentity</class> <class>org.cba.entity.company</class> <class>org.cba.entity.hobby</class> <class>org.cba.entity.phone</class> <class>org.cba.entity.address</class> <class>org.cba.entity.cityinfo</class> <properties> <property name="eclipselink.jdbc.url" value="jdbc:mysql://localhost:3306/cba_ca1_test"/> <property name="eclipselink.jdbc.driver" value="com.mysql.jdbc.driver"/> <property name="eclipselink.jdbc.user" value="root"/> <property name="eclipselink.jdbc.password" value=""/> <property name="eclipselink.ddl-generation" value="drop-and-create-tables"/> <property name="javax.persistence.sql-load-script-source" value="populate.sql"/> </properties> </persistence-unit> the populate.sql located in resources folder meta-inf folder persistence.xml.
when use settings database dropped , created every time, populate.sql not being loaded.
when write properties this:
<properties> <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/cba_ca1_test"/> <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.driver"/> <property name="javax.persistence.jdbc.user" value="root"/> <property name="javax.persistence.jdbc.password" value=""/> <property name="javax.persistence.schema-generation.database.action" value="drop-and-create"/> <property name="javax.persistence.sql-load-script-source" value="populate.sql"/> </properties> everything works (drop , create , loading of populate.sql), execution takes ages. first settings runs in few seconds , second runs minutes.
and problem not populate.sql file contains 3 sql inserts.
i think it's because use intellij idea generated eclipselink.* properties. , intelij somehow optimizes settings uses eclipselink.* naming.
anybody knows how make work, doesn't take several minutes?
these jpa , mysql dependencies:
<dependency> <groupid>mysql</groupid> <artifactid>mysql-connector-java</artifactid> <version>5.1.6</version> </dependency> <dependency> <groupid>org.eclipse.persistence</groupid> <artifactid>org.eclipse.persistence.jpa</artifactid> <version>2.7.0</version> </dependency> i have activated framework support eclipselink in intellij.
update:
i added logging property
<property name="eclipselink.logging.level" value="fine"/> and discovered, after drop (which happenes quickly) new connection established each creating table.
then inserting again pretty quick.
Comments
Post a Comment