我有一个web项目,我在其中使用OpenJAP进行数据库连接。我已经配置了persistence.xml,我可以连接到数据库并检索数据。但是在控制台输出中我看到了这个条目
1953 OpenJPA TRACE [main] openjpa.jdbc.SQL - <t 31156635, conn 6888942> executing prepstmnt 9690924
UPDATE student
SET scourse = ?, sname = ?, sroll = ?
WHERE id = ?
[params=?, ?, ?, ?]
在我的整个项目中,到目前为止,我还没有添加任何准备好的声明或任何更新声明。我想知道为什么OpenJPA执行此声明以及当我获取数百万的大数据时会有什么性能影响?
答案 0 :(得分:0)
我已将以下代码添加到build.xml文件
<!-- ***************************************************************************************************************** -->
<!-- DO NOT DELETE FOLLOWING CODE. THIS IS ADDED FOR ENCHANCING THE CLASSES AT COMPILE TIME. IT IS REQUIRED BY OPENJPA -->
<!-- Define the classpath to include the necessary files. -->
<!-- ex. openjpa jars, persistence.xml, orm.xml, and target classes -->
<path id="jpa.enhancement.classpath">
<!-- Assuming persistence.xml/orm.xml are in WebContent/WEB-INF/classes/META-INF -->
<pathelement location="WebContent/WEB-INF/classes" />
<!-- Location of the .class files -->
<pathelement location="build/classes" />
<!-- Add the openjpa jars -->
<fileset dir=".">
<include name="**/lib/*.jar" />
</fileset>
</path>
<!-- define the openjpac task; this can be done at the top of the -->
<!-- build.xml file, so it will be available for all targets -->
<taskdef name="openjpac" classname="org.apache.openjpa.ant.PCEnhancerTask" classpathref="jpa.enhancement.classpath" />
<!-- invoke enhancer on all .class files below the model directory -->
<openjpac>
<classpath refid="jpa.enhancement.classpath" />
<fileset dir=".">
<include name="**/model/*.class" />
</fileset>
</openjpac>
<echo message="Enhancement complete" />
<!-- ***************************************************************************************************************** -->
添加此项并设置eclipse以使用此build.xml文件来创建WAR文件。对象正在增强,我没有在我的日志中获得“执行准备好的语句”跟踪它也没有执行额外的“更新”语句。