Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring | JPA | Hibernate-仅返回1000个实体_Java_Spring_Hibernate_Jpa - Fatal编程技术网

Java Spring | JPA | Hibernate-仅返回1000个实体

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个实体 我肯定我在谷

我是Java Web开发的新手,最近几天我遇到了一个大问题,我不能让JPA/Hibernate返回超过1000个实体

在我的数据库中,我有大约1600个
分类
实体,但无论我如何尝试,我都无法获得超过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行,处理数据库的人显然没有制作正确的测试副本。谢谢,非常非常感谢!!这是一种类似于把你的电气助手送到卡车上拿电线担架的情况吗?