Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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 当将uuid(类型uuid)插入mysql报表时,密钥主目录的重复条目_Java_Mysql_Uuid - Fatal编程技术网

Java 当将uuid(类型uuid)插入mysql报表时,密钥主目录的重复条目

Java 当将uuid(类型uuid)插入mysql报表时,密钥主目录的重复条目,java,mysql,uuid,Java,Mysql,Uuid,在代码中,通过UUID post\u UUID=uuidGenerator.generate()生成一个UUID,然后插入mysql Connection conn = sql2o.beginTransaction(); UUID postUuid = uuidGenerator.generate(); conn.createQuery("insert into posts(post_uuid, title, content, publishing_date) values

在代码中,通过
UUID post\u UUID=uuidGenerator.generate()
生成一个
UUID
,然后插入mysql

   Connection conn = sql2o.beginTransaction();
   UUID postUuid = uuidGenerator.generate();

   conn.createQuery("insert into posts(post_uuid, title, content, publishing_date) values (:post_uuid, :title, :content, :date)")
        .addParameter("post_uuid", postUuid.toString())
        .addParameter("title", title)
        .addParameter("content", content)
        .addParameter("date", new Date())
        .executeUpdate();

   categories.forEach(category -> 
        conn.createQuery("insert into posts_categories(post_uuid, category) VALUES (:post_uuid, :category)")
        .addParameter("post_uuid", postUuid.toString())
        .addParameter("category", category)
        .executeUpdate());

   conn.commit();
   return postUuid;
随机生成类

     public class RandomUuidGenerator implements UuidGenerator{

     @Override
     public UUID generate() {
        // TODO Auto-generated method stub
        return UUID.randomUUID();
     }

   }
在mysql中,
post_uid
字段是
CHAR(36)

当我运行代码时,它会报告一个错误


错误指向第二个insert sql
addParameter(“category”,category)。executeUpdate())
尝试使用它的字符串值

 .addParameter("post_uuid", postUuid.toString ())

尝试使用它的字符串值

 .addParameter("post_uuid", postUuid.toString ())
它说,在表posts_类别中,它有一个重复的主关键字条目 不要将
post\u uuid
作为
posts\u类别的主键

对于集合中的每个元素,
categories
使用相同的
postuid

运行INSERT语句,它表示在表posts\u categories中,它有键PRIMARY的重复条目 不要将
post\u uuid
作为
posts\u类别的主键


对于集合中的每个元素
categories
使用相同的
postuid

运行INSERT语句,它应该
post_uid.toString()
传输到字符串?您是如何生成uuid的?还有,为什么要使用UUID而不是整数?我只是在上面发布了RandomUuidGenerator。这是SparkJava的教程,我在MySql使用Postgresqlit时更改了DB。它应该
post_uuid.toString()
transfer to string?您是如何生成uuid的?还有,为什么要使用UUID而不是整数?我只是在上面发布了RandomUuidGenerator。这是SparkJava的教程,我在使用PostgreSql时从MySql更改了DB,但新的问题是executeUpdate中的错误,重复输入
'dd5f5e44-c549-4bb9-b1a4-009bca084028'
'PRIMARY'
uuidGenerator从哪里来?uuidGenerator是类uuidGenerator的一个实例它来自什么库?我自己刚写的。这是
返回UUID.randomuid()
我已经尝试过了,但是一个新问题是executeUpdate中的错误,重复条目
'dd5f5e44-c549-4bb9-b1a4-009bca084028'
的uuidGenerator来自哪里?uuidGenerator是类uuidGenerator的一个实例,它来自什么库?这是我自己写的。它是
返回UUID.randomUUID()