小编www*_*www的帖子

子类getter上的@NotNull影响父类表

我有一个有关的问题javax.validation.constraints.NotNull annotation。在我的项目中,我确实有如下所示的类树:

@Inheritance(strategy = InheritanceType.JOINED)
class Ssss {
    @ManyToOne
    private Xxxx x;
    public Xxxx getXxxx() {
       return x;
    }
}

@Inheritance(strategy = InheritanceType.JOINED)
class Yyyy extends Ssss {
    @Override
    //some not important annotations
    public Xxxx getXxxx() {
        return super.getXxxx();
    }        
}

@Inheritance(strategy = InheritanceType.JOINED)
class Zzzz extends Ssss {
    @Override
    //some not important annotations
    @NotNull
    public Xxxx getXxxx() {
        return super.getXxxx();
    }
}
Run Code Online (Sandbox Code Playgroud)

这三个类作为三个表存储在数据库中。对于架构创建,我正在使用Hibernate

hibernate.hbm2ddl.auto=create
Run Code Online (Sandbox Code Playgroud)

它是一个预期的行为,Hibernate对增加NOT NULLxxxx_object_id存储在父类生成的表场SSSS类似以下内容:??

Postgres

我找不到有关休眠如何在继承的getter上使用@NotNull的任何相关信息。

有人可以帮我解决这个问题吗?
最好的祝福。 …

java postgresql hibernate jpa bean-validation

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

Spring Boot不运行单元测试

在使用spring boot:run命令构建和部署时,如何运行Spring Boot应用程序的单元测试。

我的期望是在运行应用程序之前执行我的所有单元测试,但是我不想像以前一样执行另一个Maven命令mvn test

我的问题:我做了一个简单的spring boot应用程序,当我从intellij或命令行运行应用程序时,我找不到运行单元测试的方法。首先,我认为也许我配置错误或测试类的名称错误或项目结构错误。所以我从intellij模板创建了spring boot应用程序。令我高兴的是,它已经编写了默认测试,所以我只运行应用程序。很遗憾,未执行测试。

这是intellij创建的项目结构,pom.xml,主类和单元测试的屏幕快照。intetelij创建的项目

我更改了测试运行程序并测试失败,然后再次尝试。结果相同。 单元测试更改为失败

我在spring boot:run这里http://docs.spring.io/spring-boot/docs/current/maven-plugin/run-mojo.html搜索了命令 下方隐藏的内容

我在手册开头发现了一些有趣的东西:“在执行生命周期阶段测试编译之前先执行它。” 因此,我的理解是该命令仅编译测试,而不运行测试?如果是,那么问题是-是否可以通过在命令中添加一些标志来添加“测试”阶段?

java spring unit-testing spring-boot

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