小编diz*_*iaq的帖子

如何检测列表是否已更改?

List在一个由鲜为人知的专有框架管理的类中有一个字段。

注释@BindMagic由框架管理,因此底层列表有时会发生变化:它可能会被重新创建或其元素可能会发生变化。

class SharedEntity{

  @BindMagic // this annotation does a magic that we cannot control
  private List<Map<String,Object>> values;

  public boolean isChangedSincePreviousCall(){
    // check if "values" have changed since the previous call of this method          
  }
}
Run Code Online (Sandbox Code Playgroud)

我同意这是一个糟糕的设计,但让我们假设没有可能影响它。

不时(不是在每个突变上)需要检查列表是否已更改。例如,我想用 method 来做isChangedSincePreviousCall。也许,像哈希和这样的东西会很好。但我很好奇有没有更好的方法。

检测列表是否更改的最佳做法是什么?

java hash mutable

6
推荐指数
1
解决办法
4890
查看次数

如何等待dbms_scheduler作业完成

使用Oracle 11.2

嗨,

这是我想要做的:我正在使用dbms_scheduler安排作业.要安排的作业数量不固定,最多可以同时运行4个作业.安排作业的过程应该等到所有作业完成.如果一个作业失败,"计划"过程也应该失败,并且应该从调度程序中删除所有剩余的计划作业.

目前我不得不在循环中睡眠和轮询表user_scheduler_jobs.

我是PL/SQL的新手而且缺乏经验,所以请不要对我太苛刻;)

到目前为止,这是我的代码.

首先是用于安排作业的代码段:

BEGIN
  FOR r IN (SELECT p_values FROM some_table WHERE flag = 0 )
  LOOP
    --  count running jobs
    SELECT count(*) INTO v_cnt
    FROM user_scheduler_jobs
    WHERE job_name LIKE 'something%';

    /*
    If max number of parallel jobs is reached, then wait before starting a new one.
    */
    WHILE v_cnt >= l_max_parallel_jobs
    LOOP

      dbms_lock.sleep(10);

      SELECT count(*) INTO v_cnt
      FROM user_scheduler_jobs
      WHERE job_name LIKE 'something%' AND state = 'RUNNING';

      SELECT count(*) INTO v_cnt_failures
      FROM user_scheduler_jobs
      WHERE …
Run Code Online (Sandbox Code Playgroud)

oracle dbms-scheduler oracle11gr2

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

如何在 springdoc Schema 中描述标准 Spring 错误响应?

如果出现未处理的错误,SpringBoot 应用程序的默认服务器响应是

{
    "timestamp": 1594232435849,
    "path": "/my/path",
    "status": 500,
    "error": "Internal Server Error",
    "message": "this request is failed because of ...",
    "requestId": "ba5058f3-4"
}
Run Code Online (Sandbox Code Playgroud)

我想在应用程序路由的 Springdoc 注释中描述它。

假设有一个标准类DefaultErrorResponse(只是一个模拟名称),它可能如下所示:

@Operation(
  // ... other details
  responses = {
    // ... other possible responses
    @ApiResponse(
      responseCode = "500",
      content = @Content(schema = @Schema(implementation = DefaultErrorResponse.class)))
  }
)
Run Code Online (Sandbox Code Playgroud)

在更糟糕的情况下,这样的类不存在,Spring 仅使用Map底层来创建响应。那么这个注释将更加详细,包括明确提及响应中包含的每个字段。

显然,对于大多数路线来说,这部分@ApiResponse(responseCode="500",...是相同的,并且最好减少重复。

在文档中引入默认错误响应描述的正确方法是什么?

spring response spring-boot springdoc

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

如何更改 OpenShift 中路由的 HTTP 请求响应允许的超时?

OpenShift 4.6

OpenShift 中有一个基本设置:[Pod <- Service <- Route]。Pod 中运行的服务的 HTTP 端点响应时间为 90 秒或更长时间。在某些情况下这是正常的,所以我愿意允许这种行为。

然而,在发送对路由的请求(并且响应没有返回)之后(大约 60-70 秒),路由会响应HTTP 504

<html>
<body>
    <h1>504 Gateway Time-out</h1>
    The server didn't respond in time.
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我不确定 OpenShift 在什么时候决定断开电路,而且我找不到任何允许更改此超时的配置选项。

如何为服务和 Pod 设置自定义超时以延长请求-响应周期的持续时间?

timeout connection-timeout openshift kubernetes

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

如何在Project Reactor中将DataBuffer的Flux转换为字节数组的Mono?

有一个Flux<DataBuffer>. 将其转换为 的自然方式是什么Mono<byte[]>

Mono<byte[]> mergeDataBuffers(Flux<DataBuffer> flux){
  // ?
}
Run Code Online (Sandbox Code Playgroud)

java project-reactor spring-webflux

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

克隆没有数据的oracle数据库

我想克隆我现有的oracle数据库结构,没有数据包括包,用户,表空间等.我读了一些方法,但它们都复制了数据.反正是为了做到这一点吗?

提前致谢.

oracle clone database-schema data-structures

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

ORA-01403:找不到Select into的数据

我得到ORA-01403: no data found以下查询的异常.这个错误的可能性有哪些?

SELECT trim(name)
  INTO fullname
  FROM ( SELECT n.name
         FROM directory dir, store n
        WHERE dir.name = n.name
          AND dir.status NOT IN ('F', 'L', 'M')
        ORDER BY n.imp, dir.date)
  WHERE rownum <= 1;
Run Code Online (Sandbox Code Playgroud)

我该如何处理这个错误?

oracle

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

ORA-00920:无效的关系运算符

在数据库中,我试图提取晚于指定日期的信息.我应该事先注意到日期是一种奇怪的格式:YYYYMMDDHH24MISS##where ##是一个两个字母的字符串,它定义了对我的查询无用的东西.因此,我用它substr来删除它们.

我的查询,下面,抛出以下错误,我发现原因:

[错误代码:920,SQL状态:42000] ORA-00920:无效的关系运算符

我的查询:

SELECT *
  FROM table_name
 WHERE to_date(substr(COLUMN_NAME,1,14), 'YYYYMMDDHH24MISS')) >=
       to_date('MIN_DATE', 'YYYYMMDDHH24MISS')
Run Code Online (Sandbox Code Playgroud)

我已检查以确保正确定义日期,它们是.

我用过的例子MIN_DATE是:20140101000000

sql oracle

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

oracle sql中的更新:1个表中的多行

我是 SQL 新手,不擅长更高级的查询和函数。

所以,我有一张销售表:

 id   date         seller_name   buyer_name
---- ------------ ------------- ------------
 1    2015-02-02   null          Adrian
 1    2013-05-02   null          John B
 1    2007-11-15   null          Chris F
 2    2014-07-12   null          Jane A
 2    2011-06-05   null          Ted D
 2    2010-08-22   null          Maryanne A
 3    2015-12-02   null          Don P
 3    2012-11-07   null          Chris T
 3    2011-10-02   null          James O
Run Code Online (Sandbox Code Playgroud)

我想seller_name通过将buyer_name以前的销售作为卖家名称到较新的销售日期来更新每个 ID 。例如,对于 id 1,John B 将是卖家 in2015-02-02和买家 in 2013-05-02。那有意义吗?

PS 这是完美的案例,桌子很大,而且 id 的顺序不是那么整齐。

sql oracle sql-update

4
推荐指数
1
解决办法
113
查看次数

如何在 WHERE IN 子句中使用 PostgreSQL 数组?

我正在尝试简化以下 SQL 语句(为了清晰起见,将其包装到函数中)。

使用array内部where ... in (/*array*/)子句的更简单/自然的语法方式是什么?(没有select * from unnest(...)样板)

CREATE OR REPLACE FUNCTION get_items(p_ids int[])
 RETURNS SETOF text
 LANGUAGE sql
AS $$
  select t.name 
    from my_table t 
   where f.id in (select * from unnest(p_ids))
$$;
 
 
 
 
Run Code Online (Sandbox Code Playgroud)

arrays postgresql where-in

4
推荐指数
1
解决办法
5733
查看次数