标签: spring-data

Spring Data不处理Pageable action参数创建

我有一个简单的控制器动作:

public class CategoriesController
{
    @RequestMapping(value = { "/", "" })
    public String list(
        Model model,
        @PageableDefault(size = CategoriesController.PAGE_LIMIT) Pageable pager
    )
    {
        // load page data
        Page<Category> page = this.categoryService.findAll(pager);

        /* action logic here */
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的pom.xml片段:

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>3.2.4.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>3.2.4.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>3.2.4.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-commons</artifactId>
        <version>1.6.4.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-jpa</artifactId>
        <version>1.5.0.RELEASE</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

添加到我之后applicationContext.xml:

<bean class="org.springframework.data.web.config.SpringDataWebConfiguration"/>
Run Code Online (Sandbox Code Playgroud)

我有以下错误:

org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.data.domain.Pageable]: Specified …
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc spring-data

12
推荐指数
1
解决办法
1万
查看次数

为什么Spring Data MongoDB无法实例化这种嵌套类型结构?

我的文档结构如下:

{
    _id: "A",
    groups:[{
        groupId: "someId",
        groupName: "someName",
        params: {
            type1: ["a", "b"],
            type2: ["c", d]
        }
    }],
    config: {
        person: {}
        dataDetails: {
            dataTypeDetails: {},
            dataList: ["dt1", "dt2"]
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的Spring Data MongoDB模型类型如下所示:

// Imports etc.
@Document
public class Entity {

    @Id
    private String _id;

    private List<Group> groups;
    private Config config;
    // setters and getters

    public class Group {
        private String groupId;
        private String groupName;
        private ParamData params;

        // setter and getters
    }

    public class ParamData { …
Run Code Online (Sandbox Code Playgroud)

mongodb spring-data spring-data-mongodb

12
推荐指数
1
解决办法
1万
查看次数

具有多租户的Spring Boot + Spring数据

是否可以将Spring Boot配置为使用MultiTenantConnectionProvider,以便我系统的每个客户端都连接到自己的私有数据库?

具体来说,我希望使用内置的hibernate支持多租户:

这是我所追求的那种配置的一个例子,但我无法弄清楚如何在Spring Boot设置中使用它:

我已经尝试将这些属性添加到application.properties:

spring.jpa.hibernate.multiTenancy=DATABASE
spring.jpa.hibernate.tenant_identifier_resolver=com.mystuff.MyCurrentTenantIdentifierResolver
spring.jpa.hibernate.multi_tenant_connection_provider=com.mystuff.MyMultiTenantConnectionProviderImplX
Run Code Online (Sandbox Code Playgroud)

我也试着编码了我自己CurrentTenantIdentifierResolverMultiTenantConnectionProvider,并试图从我的主要@Configuration豆服务这些了:

@Bean
public CurrentTenantIdentifierResolver currentTenantIdentifierResolver() {
    return new CurrentTenantIdentifierResolver() {
        public String resolveCurrentTenantIdentifier() {
            // this is never called ...
        }
        public boolean validateExistingCurrentSessions() {
            // this is never called ...
        }
    };
}

@Bean
public MultiTenantConnectionProvider multiTenantConnectionProvider() {
    return new AbstractMultiTenantConnectionProvider() {
        protected ConnectionProvider getAnyConnectionProvider() {
            // this is never called ...
        }
        protected ConnectionProvider selectConnectionProvider(String s) {
            // this is never …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate spring-data spring-boot

12
推荐指数
1
解决办法
9601
查看次数

Spring Data MongoDB是否支持枚举?

对于Java枚举类型,我了解到MongoDB有两种解决方案:序列化使用Jackson的ObjectMapper.MongoRepository可以使用这些方法中的任何一种使用枚举数据类型,或者我必须编写自定义存储库吗?

spring-data spring-data-mongodb

12
推荐指数
2
解决办法
1万
查看次数

使用spring-boot和spring-data全局启用hibernate过滤器

我试图通过Spring Boot和Spring Data实现鉴别器实现的多租户.

我创建了一个抽象类来表示一个多租户实体.与此类似的东西:

@MappedSuperclass
@FilterDefs({@FilterDef(name = "multi-tenant", parameters = {@ParamDef(name = "tenant", type = "string")})})
@Filter(name = "multi-tenant", condition = "tenant = :tenant")
public abstract class MultiTenantEntity extends GenericEntity {
    @Transient
    private transient String savedTenant;

    @PostLoad
    private void onLoad() throws Exception {
        this.savedTenant = this.tenant;
        onEntityModification();
    }

    @PrePersist
    private void onPersist() {
        if (getId() == null || getId().equals(0l)) {
            tenant = SecurityUtil.getCurrentTenant();
        }
    }

    @PreUpdate
    @PreRemove
    private void onEntityModification() throws Exception {
        String currentTenant = SecurityUtil.getCurrentTenant();

        if (!currentTenant.equals(tenant) || …
Run Code Online (Sandbox Code Playgroud)

java hibernate spring-data spring-data-jpa spring-boot

12
推荐指数
1
解决办法
3370
查看次数

使用Spring限制查找所有可能吗?

使用Springs自动实现的存储库是否可以限制findAll方法的结果大小?

我正在尝试在界面中声明以下内容:

List<XY> findAllTopTen();
Run Code Online (Sandbox Code Playgroud)

不幸的是,它不起作用(这)方式......

spring spring-data

12
推荐指数
2
解决办法
1万
查看次数

使用Java访问MongoDB时连接到服务器localhost:27017时监视器线程中的异常

在为MongoDB运行Java应用程序时,我有以下异常:

[localhost:27017] org.mongodb.driver.cluster : Exception in monitor thread while connecting to server localhost:27017 while accessing MongoDB with Java
Run Code Online (Sandbox Code Playgroud)

调用堆栈如下:

com.mongodb.MongoSocketOpenException: Exception opening socket
    at com.mongodb.connection.SocketStream.open(SocketStream.java:63) ~[mongodb-driver-core-3.0.4.jar:na]
    at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:114) ~[mongodb-driver-core-3.0.4.jar:na]
    at com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:127) ~[mongodb-driver-core-3.0.4.jar:na]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_45]
Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) ~[na:1.8.0_45]
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85) ~[na:1.8.0_45]
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345) ~[na:1.8.0_45]
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[na:1.8.0_45]
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[na:1.8.0_45]
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) ~[na:1.8.0_45]
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.8.0_45]
    at java.net.Socket.connect(Socket.java:589) ~[na:1.8.0_45]
    at com.mongodb.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:50) ~[mongodb-driver-core-3.0.4.jar:na]
    at com.mongodb.connection.SocketStream.open(SocketStream.java:58) ~[mongodb-driver-core-3.0.4.jar:na]
    ... 3 common frames omitted
Run Code Online (Sandbox Code Playgroud)

这两个名字都不属于我的申请.我在本地主机上也没有MONGODB服务器.我正在使用远程主机并稍后进行设置.关于Mongo的任何陈述之前都会发生异常.

UPDATE

这可能是一些 …

java remote-host mongodb spring-data spring-data-mongodb

12
推荐指数
3
解决办法
3万
查看次数

Spring Data Mongodb:如何转储通过QueryDsl生成的原始查询/命令?

我正在使用Spring Data的Querydsl集成来使用谓词执行我的查询.

findAll(predicate, pageable)
Run Code Online (Sandbox Code Playgroud)

有没有办法转储执行的实际原始查询/命令?

我也查看了这个问题的答案,它对我不起作用. 配置MongoDB Java驱动程序的日志记录

- 更新 - 我设法通过在application.properties(而不是log4j.properties)中添加logging.level.org.mongodb.driver = DEBUG来使日志工作正常工作

但是,我仍然无法看到正在执行的原始查询:

2016-03-23 21:50:56 DEBUG查询:56 - 查询完成2016-03-23 21:50:56 DEBUG查询:56 - 在连接上发送命名空间testdb.reservation的查询[connectionId {localValue:4,serverValue: 42631}]到服务器ds046785.mongolab.com:39186

java mongodb querydsl spring-data spring-data-mongodb

12
推荐指数
1
解决办法
1969
查看次数

Spring Data Pageable:返回空内容

我是Spring Data和Spring MVC的新手,我不明白为什么我会得到空的内容:

@RequestMapping(value="/pages", method=RequestMethod.GET)
@ResponseBody 
public Page<Client> contactsPages(@RequestParam int page, @RequestParam int size) {
    Pageable pageable = new PageRequest(page, size, new Sort("id"));
    Page<Client> pageResult = clientRepository.findAll(pageable);

    return pageResult;
} 
Run Code Online (Sandbox Code Playgroud)

我测试网址时json的结果是:

{"content":[],"last":true,"totalElements":2,"totalPages":1,"size":5,"number":1,"sort":[{"direction":"ASC","property":"id","ignoreCase":false,"nullHandling":"NATIVE","ascending":true}],"first":false,"numberOfElements":0}
Run Code Online (Sandbox Code Playgroud)

如果您有使用Spring Data和Spring MVC以及AngularJS制作可分页请求的好示例; 这对我来说将是一个很大的帮助.

java spring spring-mvc spring-data spring-data-jpa

12
推荐指数
1
解决办法
9704
查看次数

如何处理Spring Data JPA中的一系列ID批量删除?

现在我有一个类User,我arrayjsp或获得了一个请求数据html.

列出这个 Integer[] arr=[5,6,9,10,62,52,21]

然后我使用两种方法来完成膨胀删除操作.

@Transactional
@Override
public void deleteUser(Integer id) {

    oneRepository.delete(id);
}


@Transactional
@Override
public void deleteSomeUser(Integer[] ids) {

    for (Integer id : ids) {

        deleteUser(id);

    }

}
Run Code Online (Sandbox Code Playgroud)

我想知道如果这是一种更有效的方法来完成这个动作.

你可以看到我的日志:它似乎不太好!

[94, 95, 91, 92, 93]
Hibernate: 
    delete 
    from
        sshh_user 
    where
        ID=?


Hibernate: 
    delete 
    from
        sshh_user 
    where
        ID=?



Hibernate: 
    delete 
    from
        sshh_user 
    where
        ID=?



Hibernate: 
    delete 
    from
        sshh_user 
    where
        ID=?



Hibernate: 
    delete 
    from
        sshh_user 
    where
        ID=?



Hibernate: 
    select
        count(practice0_.ID) as col_0_0_ 
    from
        sshh_user …
Run Code Online (Sandbox Code Playgroud)

hibernate spring-mvc spring-data spring-data-jpa

12
推荐指数
2
解决办法
2万
查看次数