首页 > 解决方案 > JPA:使用 @Column(columnDefinition = "boolean default true") 不会在 H2 数据库中将布尔值设置为 TRUE

问题描述

我将实体属性之一定义为将默认布尔值设置为 true:

    @NotNull
    @Column(columnDefinition = "boolean default true")
    private Boolean free = true;
...

但是当我在测试中创建此实体时,它似乎无法正常工作:

@DataJpaTest
class DeviceRepositoryTest {

    @Autowired
    private TestEntityManager entityManager;

    @Autowired
    private DeviceRepository repository;

@Test
    public void testFindByFirstFreeTrue() {
        Device device = buildDevice("D-1");

        entityManager.persist(device);
        entityManager.flush();

        Device freeDevice = repository.findFirstByFreeTrue();
        assertThat(freeDevice).isNotNull();
        assertThat(freeDevice.getDeviceId()).isEqualTo("D-1");
        assertThat(freeDevice.getFree()).isTrue();
    }

它在第一个断言上失败了。当我在调试模式下检查创建的实体时,属性freenull. 我错过了什么?

标签: spring-data-jpa

解决方案


推荐阅读