【问题标题】:Column of BIT datatype is not inserting/updating default values in MySql database using Spring BootBIT 数据类型的列未使用 Spring Boot 在 MySql 数据库中插入/更新默认值
【发布时间】:2022-02-04 05:19:28
【问题描述】:

所以我有一个这样配置的表

    CREATE TABLE `jobDetails` (
  `id` varchar(255) NOT NULL,
  `job_id` varchar(255) NOT NULL,
  `editor_id` varchar(255) DEFAULT NULL,
  `editor_dueDate` datetime DEFAULT NULL,
  `ops_tags` int NOT NULL DEFAULT '2',
  `notes_from_ops` text CHARACTER SET utf8 COLLATE utf8_general_ci,
  `reviewer_id` varchar(255) DEFAULT NULL,
  `reviewer_dueDate` datetime DEFAULT NULL,
  `sales_tags` varchar(255) DEFAULT '13',
  `notes_from_sales` text CHARACTER SET utf8 COLLATE utf8_general_ci,
  `shift` int DEFAULT NULL,
  `additionalNotes` text CHARACTER SET utf8 COLLATE utf8_general_ci,
  `editorStatus` int DEFAULT NULL,
  `tracked_file_id` varchar(255) DEFAULT NULL,
  `clean_file_id` varchar(255) DEFAULT NULL,
  `additional_file_id` varchar(255) DEFAULT NULL,
  `editor_wordCount` int DEFAULT NULL,
  `job_details_type` int DEFAULT '0',
  `editing_speed` int DEFAULT '0',
  `reviewing_priority` int DEFAULT NULL,
  `is_enabled` bit(1) NOT NULL DEFAULT b'1',
  PRIMARY KEY (`id`),
  KEY `FKhb282r593ce4xojoo4hfd3fwm` (`additional_file_id`),
  KEY `FKnb8b8nhc9yb78e2p5ipadfc8u` (`clean_file_id`),
  KEY `FK82594hccbyjik7bc0ev4f74ks` (`tracked_file_id`),
  CONSTRAINT `FK82594hccbyjik7bc0ev4f74ks` FOREIGN KEY (`tracked_file_id`) REFERENCES `files` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
  CONSTRAINT `FKhb282r593ce4xojoo4hfd3fwm` FOREIGN KEY (`additional_file_id`) REFERENCES `files` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
  CONSTRAINT `FKnb8b8nhc9yb78e2p5ipadfc8u` FOREIGN KEY (`clean_file_id`) REFERENCES `files` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=latin1

因此,当我通过我的代码插入/更新此表而不设置其值时,它应该考虑将默认值设置为“true”或“1”,但目前情况并非如此,它将值设置为“0”或“假”。

我的后端使用的是 Spring Boot 和 Spring Data JPA

【问题讨论】:

  • 您还应该发布您的相关代码,尤其是实体。

标签: mysql spring-boot spring-data-jpa


【解决方案1】:

没有看到您的代码可能很难回答,但这里有一个理论:您正在(自动)初始化原语(intboolean)及其默认值(0false),即不是null,所以DEFAULT 关键字被忽略。您还应该在 Java 中定义默认列值,如 here 所示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-23
    • 1970-01-01
    • 2011-11-14
    • 2021-02-25
    • 2015-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多