Java Spring | JPA | Hibernate-仅返回1000个实体
我是Java Web开发的新手,最近几天我遇到了一个大问题,我不能让JPA/Hibernate返回超过1000个实体 在我的数据库中,我有大约1600个Java Spring | JPA | Hibernate-仅返回1000个实体,java,spring,hibernate,jpa,Java,Spring,Hibernate,Jpa,我是Java Web开发的新手,最近几天我遇到了一个大问题,我不能让JPA/Hibernate返回超过1000个实体 在我的数据库中,我有大约1600个分类实体,但无论我如何尝试,我都无法获得超过1000个实体,即使我尝试对它们进行计数以便能够对请求进行分页,计数(…)返回1000个 我知道问题不在数据库服务器上,因为我已经制作了PHP服务器端脚本,可以完美地与此SQL服务器配合使用 我尝试过使用Query、NativeQuery和Criteria。但没有任何回报超过1000个实体 我肯定我在谷
分类
实体,但无论我如何尝试,我都无法获得超过1000个实体,即使我尝试对它们进行计数以便能够对请求进行分页,计数(…)
返回1000个
我知道问题不在数据库服务器上,因为我已经制作了PHP服务器端脚本,可以完美地与此SQL服务器配合使用
我尝试过使用Query、NativeQuery和Criteria。但没有任何回报超过1000个实体
我肯定我在谷歌上搜索了所有东西,真的不知道还能做什么,请帮忙
我的代码在下面,提前谢谢你
spring context.xml
...
<!-- SQL Server Datasource with Commons DBCP connection pooling -->
<bean class="org.apache.commons.dbcp.BasicDataSource" id="dataSource">
<property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
<property name="url" value="jdbc:sqlserver://XXX;database=XXX;user=XXX;password=XXX;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;" />
<property name="validationQuery" value="select 1" />
<property name="validationQueryTimeout" value="1000" />
<property name="testOnBorrow" value="true" />
</bean>
<!-- EntityManagerFactory -->
<bean
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
id="entityManagerFactory">
<property name="persistenceUnitName" value="persistenceUnit" />
<property name="dataSource" ref="dataSource" />
</bean>
<!-- Transaction Manager -->
<bean class="org.springframework.orm.jpa.JpaTransactionManager"
id="transactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
...
<persistence xmlns="..." xmlns:xsi="..." version="2.0" xsi:schemaLocation="...">
<persistence-unit name="persistenceUnit" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServer2008Dialect"/>
<property name="hibernate.hbm2ddl.auto" value="validate"/>
<property name="hibernate.ejb.naming_strategy" value="org.hibernate.cfg.ImprovedNamingStrategy"/>
<property name="hibernate.connection.charSet" value="UTF-8"/>
<property name="hibernate.generate_statistics" value="true"/>
<property name="hibernate.show_sql" value="false"/>
</properties>
</persistence-unit>
</persistence>
。。。
...
persistence.xml
...
<!-- SQL Server Datasource with Commons DBCP connection pooling -->
<bean class="org.apache.commons.dbcp.BasicDataSource" id="dataSource">
<property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
<property name="url" value="jdbc:sqlserver://XXX;database=XXX;user=XXX;password=XXX;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;" />
<property name="validationQuery" value="select 1" />
<property name="validationQueryTimeout" value="1000" />
<property name="testOnBorrow" value="true" />
</bean>
<!-- EntityManagerFactory -->
<bean
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
id="entityManagerFactory">
<property name="persistenceUnitName" value="persistenceUnit" />
<property name="dataSource" ref="dataSource" />
</bean>
<!-- Transaction Manager -->
<bean class="org.springframework.orm.jpa.JpaTransactionManager"
id="transactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
...
<persistence xmlns="..." xmlns:xsi="..." version="2.0" xsi:schemaLocation="...">
<persistence-unit name="persistenceUnit" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServer2008Dialect"/>
<property name="hibernate.hbm2ddl.auto" value="validate"/>
<property name="hibernate.ejb.naming_strategy" value="org.hibernate.cfg.ImprovedNamingStrategy"/>
<property name="hibernate.connection.charSet" value="UTF-8"/>
<property name="hibernate.generate_statistics" value="true"/>
<property name="hibernate.show_sql" value="false"/>
</properties>
</persistence-unit>
</persistence>
org.hibernate.ejb.HibernatePersistence
分类服务.java
@Transactional
public List<Assortment> getWholeAssortment() {
String searchQuery = "SELECT a FROM Assortment a";
List<Assortment> result = entityManager.createQuery(searchQuery, Assortment.class).getResultList();
return result;
}
@Transactional
public int getAssortmentCount(){
String searchQuery = "SELECT COUNT(1) FROM test_assortment";
int result = (Integer) entityManager.createNativeQuery(searchQuery).getSingleResult();
return result;
}
@Transactional
public List<Assortment> getAssortmentWithCriteria(){
CriteriaQuery<Assortment> criteria = entityManager.getCriteriaBuilder().createQuery(Assortment.class);
criteria.select(criteria.from(Assortment.class));
List<Assortment> result = entityManager.createQuery(criteria).getResultList();
return result;
}
@Transactional
公共列表getWholeasortEntation(){
String searchQuery=“从产品组合a中选择a”;
List result=entityManager.createQuery(searchQuery,分类.class).getResultList();
返回结果;
}
@交易的
public int getschooldmentcount(){
String searchQuery=“从测试组合中选择计数(1)”;
int result=(整数)entityManager.createNativeQuery(searchQuery.getSingleResult();
返回结果;
}
@交易的
public List getSchooldmentWithCriteria(){
CriteriaQuery criteria=entityManager.getCriteriaBuilder().createQuery(分类.class);
选择(criteria.from(schoolment.class));
列表结果=entityManager.createQuery(条件).getResultList();
返回结果;
}
如果本机查询返回1000,则我怀疑该数据库中没有1600行。:)aa当你缺乏经验并且信任其他人时,就会发生这种情况。我刚刚用PHP脚本和这个数据表进行了尝试,返回了1000行,处理数据库的人显然没有制作正确的测试副本。谢谢,非常非常感谢!!这是一种类似于把你的电气助手送到卡车上拿电线担架的情况吗?