小编Ash*_*r N的帖子

当 Hibernate 实体具有 GenerationType.SEQUENCE 时,如何使用序列作为默认值将测试数据插入到 H2 中

当实体映射到 GenerationType.IDENTITY 时,一个 sql 插入到 h2 测试数据库中的 id 列将具有指向序列的默认值。当使用 GenerationType.SEQUENCE 映射时,它将没有默认值。

我们想使用 GenerationType.SEQUENCE 因为它更冗长,我们想显示所有内容的来源。在测试期间,我们偶然发现了这个问题 - 当使用 @Sql 将脚本插入嵌入式 h2 数据库时,我们会收到关于非空约束的错误。当我们只是将脚本作为本机查询执行时也会发生这种情况。

使用 GenerationType.IDENTITY 时不会发生这种情况。上面的相同脚本可以正常工作。

如果我们使用 GenerationType.SEQUENCE 并通过调用下一个值函数将 id 传递给它,如下所示:

INSERT INTO example (id, name) (NEXTVAL('example_id_seq'), 'test');
Run Code Online (Sandbox Code Playgroud)

该脚本将正常工作。

这是一个映射发生问题的插入的示例:

@Entity
@Table(schema = DbSchemas.PUBLIC, name = DbTables.Example)
public class Example implements Serializable {
    private static final long serialVersionUID = -8827852720381659873L;

private static final String EXAMPLE_GENERATOR = "example_generator";

@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = EXAMPLE_GENERATOR)
@SequenceGenerator(name = EXAMPLE_GENERATOR, sequenceName = DbSequences.EXAMPLE_ID_SEQUENCE, …
Run Code Online (Sandbox Code Playgroud)

java unit-testing hibernate h2

5
推荐指数
0
解决办法
1609
查看次数

如何在 Spring MVC 中的 @controllerAdvice 或 @RestControllerAdvice 中找到控制器名称?

    @ControllerAdvice
    public class GlobalExceptionHandler {

        @ExceptionHandler(NoHandlerFoundException.class)
        public ResponseEntity<Error> handle(NoHandlerFoundException ex){
            String message = "HTTP " + ex.getHttpMethod() + " for " + ex.getRequestURL() + " is not supported.";
            Error error = new Error(HttpStatus.NOT_FOUND.value(), message);
            return new ResponseEntity<Error>(error, HttpStatus.NOT_FOUND);
        }

    }
Run Code Online (Sandbox Code Playgroud)
  1. 我将@ControllerAdvice 与@ExceptionHandler 一起使用。
  2. 我需要在handle方法中获取发生异常的控制器类名和包名或类对象

spring-mvc spring-aop

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

nodemon配置文件中的verbose是什么意思?

我的项目中有一个 nodemon 配置是什么verbose意思以及它有什么作用

{
  "verbose": true,
  "watch": "./server"
}
Run Code Online (Sandbox Code Playgroud)

我已经阅读了nodemon的自述文件,它没有谈论它

javascript node.js npm nodemon

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