Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在不唯一的情况下创建主关联密钥_Java_Spring_Hibernate_Spring Boot_Jpa - Fatal编程技术网

Java 如何在不唯一的情况下创建主关联密钥

Java 如何在不唯一的情况下创建主关联密钥,java,spring,hibernate,spring-boot,jpa,Java,Spring,Hibernate,Spring Boot,Jpa,我想创建一个主关联键,但我不希望它是唯一的,因为我有一个区分记录的日期列。有人能帮我吗?好的。您的主键必须是唯一的。如果它不是唯一的,它就不是主键。 如果出于任何原因,您当前使用的任何列都不能是唯一的,您可以: 创建另一个字段来保存自动生成的ID,并将其设置为主键。您仍然可以按日期搜索,甚至可以为其编制索引。这是最简单、最简单、最好的选择,除非你有很好的理由不这么做 创建一个包含日期列和id列的复合键,如果可能的话,将其设置为主键 请记住,根据定义,数据库中的键必须是唯一的。如果要解决此问题

我想创建一个主关联键,但我不希望它是唯一的,因为我有一个区分记录的日期列。有人能帮我吗?

好的。您的主键必须是唯一的。如果它不是唯一的,它就不是主键。 如果出于任何原因,您当前使用的任何列都不能是唯一的,您可以:

  • 创建另一个字段来保存自动生成的ID,并将其设置为主键。您仍然可以按日期搜索,甚至可以为其编制索引。这是最简单、最简单、最好的选择,除非你有很好的理由不这么做
  • 创建一个包含日期列和id列的复合键,如果可能的话,将其设置为主键

请记住,

根据定义,数据库中的键必须是唯一的。如果要解决此问题,需要在复合键中包含日期字段。是@RogerGustavsson I do itA主键必须始终唯一。由于hibernate和数据库一样严格遵循这一规则,因此无法实现您想要的功能。对于哪些记录与其他记录相关,不能有任何歧义