Java Hibernate将uuid转换为空字节数组
我是另一家公司的实习生,所以我对他们的hibernate实现的内部工作原理没有完全的了解。我只知道: 方言:SQLServer方言 连接驱动程序类:net.sf.log4jdbc.DriverSpy 数据库是2014年的sql server microsoft 如果还有其他要求,请留下评论 这就是我所做的: 将所有使用hibernate的测试移到单独的项目中进行测试。 为了查看hibernate是否仍然有效,我尝试了一个测试,在该测试中我创建并持久化了一个实体。 这导致了一个奇怪的错误,我的UUID被转换并存储为一个空字节数组,并使用默认的UUID存储。这意味着我第二次运行它时,它会说UUID已经存在,因为它再次恢复为默认值。 下面是我想要运行的代码示例Java Hibernate将uuid转换为空字节数组,java,sql-server,hibernate,uuid,Java,Sql Server,Hibernate,Uuid,我是另一家公司的实习生,所以我对他们的hibernate实现的内部工作原理没有完全的了解。我只知道: 方言:SQLServer方言 连接驱动程序类:net.sf.log4jdbc.DriverSpy 数据库是2014年的sql server microsoft 如果还有其他要求,请留下评论 这就是我所做的: 将所有使用hibernate的测试移到单独的项目中进行测试。 为了查看hibernate是否仍然有效,我尝试了一个测试,在该测试中我创建并持久化了一个实体。 这导致了一个奇怪的错误,我的UU
EntityManager em = DBService.getInstance().getDefaultEntityManager();
em.getTransaction().begin();
Invoice o = new Invoice();
System.out.println("real id " +o.getId().toString());
em.persist(o);
em.getTransaction().commit();
assertFalse(em.find(Invoice.class, o.getId()) == null);
下面是使用的值,最后一个是主uuid
values ('03/02/2015 15:14:04.038', NULL, NULL, NULL,
0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, NULL, NULL, 0, NULL, NULL, NULL, 0, NULL, NULL, NULL, 0, NULL, NULL, 0, 25.0, '<byte[]>')
下面是抛出的异常
ExceptionHelper:146 - Violation of PRIMARY KEY constraint 'PK__Invoice__3213E83F25AF783C'. Cannot insert duplicate key in object 'dbo.Invoice'. The duplicate key value is (0500edac-7273-2400-636f-6d2e6d696e75).
我通过将uuid typedef映射java类移动到测试项目来修复它,因为显然这两个项目无法共享它 关于映射的一些信息会很好,特别是id属性是如何映射的。它们可能是相同的答案,但我不想在我很少使用的框架上回答。
ExceptionHelper:146 - Violation of PRIMARY KEY constraint 'PK__Invoice__3213E83F25AF783C'. Cannot insert duplicate key in object 'dbo.Invoice'. The duplicate key value is (0500edac-7273-2400-636f-6d2e6d696e75).