我正在寻找制作我的小型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)