小编use*_*974的帖子

如何从 MongoRepository/QueryDSL 获取不同的字段?

我的文档是

@QueryEntity @Data @Document(collection = "MyCol") public class MyCol {
    @Id private String _id;
    private     String version;
Run Code Online (Sandbox Code Playgroud)

我想获取存储在数据库中的所有不同版本。

我的尝试:

public interface MyColDao extends MongoRepository<MyCol, String>, QueryDslPredicateExecutor<MyCol> {
    @Query("{ distinct : 'MyCol', key : 'version'}")
    List<String> findDistinctVersion();
}
Run Code Online (Sandbox Code Playgroud)

或者只是 findDistinctVersion 而不带查询注释。

github上的大多数例子都有一个By-field,比如

  List<Person> findDistinctPeopleByLastnameOrFirstname(String lastname, String firstname);
Run Code Online (Sandbox Code Playgroud)

我不需要 By 字段。

我在这里找到了另一个例子。

@Query("{ distinct : 'channel', key : 'game'}")
public JSONArray listDistinctGames();
Run Code Online (Sandbox Code Playgroud)

这似乎对我不起作用。

我似乎找不到 queryDSL/Morphia 的文档来执行此操作。

java spring querydsl spring-data

5
推荐指数
1
解决办法
6975
查看次数

http 连接池如何在泽西岛工作?

这是我的代码。

import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.glassfish.jersey.client.ClientConfig;
import org.glassfish.jersey.client.ClientProperties;
import org.glassfish.jersey.client.JerseyClient;
import org.glassfish.jersey.client.JerseyClientBuilder;

public class Jersey2HttpClient {

    private static class InstanceHolder {
        private static final JerseyClient INSTANCE = createClient();

        private static JerseyClient createClient() {
            ClientConfig clientConfig = new ClientConfig();
            clientConfig.property(ClientProperties.READ_TIMEOUT, 20000);
            clientConfig.property(ClientProperties.CONNECT_TIMEOUT, 20000);
            PoolingHttpClientConnectionManager connectionManager =
                new PoolingHttpClientConnectionManager();
            connectionManager.setMaxTotal(200);
            connectionManager.setDefaultMaxPerRoute(50);
            clientConfig.property(ApacheClientProperties.CONNECTION_MANAGER, connectionManager);
            clientConfig.connectorProvider(new ApacheConnectorProvider());

            JerseyClient client = JerseyClientBuilder.createClient(clientConfig);
            client.register(RequestLogger.requestLoggingFilter);
            return client;
        }
    }

    public static JerseyClient getInstance() {
        return InstanceHolder.INSTANCE;
    }
}
Run Code Online (Sandbox Code Playgroud)

我有以下问题。

  1. 如果每次创建“连接池对象”时都会将相同的客户端(通过 getInstance())返回到调用线程?似乎相同的对象(客户端)用于连接。

  2. 执行以下代码时到底发生了什么。

    JerseyClient 客户端 = JerseyClientBuilder.createClient(clientConfig);

换句话说,为什么创建客户端是一项昂贵的操作?我什至还没有提到网址或请求。

很抱歉我对这个主题的知识薄弱。

java jersey jersey-2.0

3
推荐指数
1
解决办法
6021
查看次数

标签 统计

java ×2

jersey ×1

jersey-2.0 ×1

querydsl ×1

spring ×1

spring-data ×1