Cassandra如何将UUID转换为字符串并再次转回UUID

5
如果我使用UUID1作为我的列名,然后用php检索它们,如何将该UUID转换为可读字符串,以便将该字符串插入HTML中,然后稍后通过将该字符串转换回UUID来选择相同的列?这是否可能?我可以使用UTF8或其他内容,但我想避免冲突并获得有序的宽行,并且我确实需要将这些列名存储到HTML中,我看不到其他方法。我正在使用phpcassa。
2个回答

4

你可以将UUID对象转换为字符串,以获取一个漂亮的可打印版本。该字符串可以与UUID::import()一起使用,以再次创建相同的UUID对象:

use phpcassa\UUID;

$uuid = UUID::uuid1();
$pretty_uuid = (string)$uuid;
echo("Printable version: " . $pretty_uuid . "\n");
$uuid_copy = UUID::import($pretty_uuid);
assert ($uuid == $uuid_copy);

0
假设您正在以byte[]形式获取UUID,您可以使用类似以下代码的方式:
    public Object convertFromNoSqlImpl(byte[] value) {
        byte[] timeArray = new byte[8];
        byte[] clockSeqAndNodeArray=new byte[8];
        System.arraycopy(value,0,timeArray,0,8);
        System.arraycopy(value,8,clockSeqAndNodeArray,0,8);
        long time = StandardConverters.convertFromBytes(Long.class, timeArray);
        long clockSeqAndNode = StandardConverters.convertFromBytes(Long.class, clockSeqAndNodeArray);
        UUID ud = new UUID(time,clockSeqAndNode);
        return ud;
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接