将UUID存储在MYSQL和Oracle(Hibernate)中的Loggical问题?

时间:2017-10-13 13:40:10

标签: java mysql oracle hibernate uuid

我正在寻找制作我的小型java应用程序,使其适用于oracle和MySQL数据库..我能够在oracle和MySQL中实现使用Hibernate JPA插入UUID但是我需要一些硬编码的UUID与数据库UUID(手动插入)进行比较。

这是我的代码我的实体使用..

@Id
@GeneratedValue(generator = "UUID")
@GenericGenerator(name = "UUID", strategy = "uuid2")
@Column(name = "id", updatable = false, nullable = false)
private UUID id; //NOTE : Here UUID datatype is java.util package 

在Oracle中我使用UWID的RAW数据类型,而我从实体获取是以这种方式查看数据....

  ________________________________________________________________
  Oracle         : 5C7C417E7C624D61A379DD7CA434F15D
  Java(Entity)   : 5C7C417E-7C62-4D61-A379-DD7CA434F15D

以下是MYSQL的应用程序行为(使用二进制(36)作为数据类型)

________________________________________________________________
  MYSQL         :  4193DB01AD794105AE8030DFBB44EB70
  Java(Entity)  :  34313933-6462-3031-6164-373934313035 //Whch is not similar

如何在没有破折号的情况下获取相同的UUID ...在MYSQL中?我的做法是错的吗?

我如何从Oracle和MySQL DB中获取值。

@Override
    public <T extends AbsEntity> List<T> findAll(Class<T> clz) {        
        StringBuffer queryBuf = new StringBuffer();
        queryBuf.append("From " + clz.getSimpleName() + " e");
        Query query = getEntityManager().createQuery(queryBuf.toString());
        List<T> result = query.getResultList();
        return result;
    }
  

我所做的只是sysout(entity.getId());

主要更新:

  

根据我的分析,我使用java util类插入UUID   UUID.randomUUID()当我获取时,它在Oracle中工作正常   UUID(与输入相同)没有破折号,因为在MYSQL中我得到了一些   随机UUID(不知道为什么)。

> Later I used UUID() function of MySQL the UUID which is entered is
> again not realated(NOT SAME WITHOUT DASHASES)

0 个答案:

没有答案