下面是 man apt-get 的摘录。使用 upgrade 时应遵守以下规则:在任何情况下都不得删除当前已安装的软件包,也不得检索和安装尚未安装的软件包。如果这对你很重要,那就用 apt-get upgrade。如果你想让一切 "正常运行",你可能需要使用apt-get dist-upgrade来确保依赖关系得到解决。

upgrade

upgrade 用于从/etc/apt/sources.list 列举的源中安装系统当前安装的所有软件包的最新版本。当前安装的软件包如果有新版本可用,则会被检索和升级;在任何情况下,当前安装的软件包都不会被移除,尚未安装的软件包也不会被检索和安装。当前已安装的软件包的新版本,如果不能在不改变其他软件包安装状态的情况下升级,则会保留其当前版本。必须先进行更新,以便 apt-get 知道新版本的软件包可用。

dist-upgrade

除了执行升级功能外,dist-upgrade 还能智能地处理与新版本软件包的依赖关系变化;apt-get 有一个 "智能 "的冲突解决系统,它会尝试升级最重要的软件包,而命令可能会删除某些软件包。/etc/apt/sources.list文件包含一个位置列表,可以从中获取所需的软件包文件。另请参阅 apt_preferences(5),了解覆盖个别软件包常规设置的机制。

deb http://deb.debian.org/debian bookworm main
deb-src http://deb.debian.org/debian bookworm main

deb http://deb.debian.org/debian-security/ bookworm-security main
deb-src http://deb.debian.org/debian-security/ bookworm-security main

deb http://deb.debian.org/debian bookworm-updates main
deb-src http://deb.debian.org/debian bookworm-updates main

@Column(nullable=false) 是生成模式的指令。从该类生成的数据库列将在实际数据库中标记为不可空。

optional=false 是一条运行时指令。它的主要功能与懒加载有关。除非你记得设置 optional=false,否则你就无法懒加载一个非集合映射实体(因为 Hibernate 不知道那里应该有一个代理还是一个空值,除非你告诉它空值是不可能的,所以它可以生成一个代理)。

https://stackoverflow.com/questions/3331907/what-is-the-difference-between-manytooneoptional-false-vs-columnnullable-f