Datensätze in einer Datenbank per GID identifizieren
Author: werlitz
Publication Date: 11/21/2014 11:06
Datensätze erhalten neben der FS_ID auch eine eindeutige GID. Diese kann man z.B. bei über die Datensatzeigenschaften anzeigen (siehe Screenshot). Diese GID findet sich auch im Content Transport bzw. ExtSync wieder z.B.:
<DATA>
<TABLE name="Gallery_Media" rows="1">
<ROW index="1">
<COLUMN name="FS_GID">e289f6fb-631e-445d-960a-d4ff5988d3dd</COLUMN>
<COLUMN name="fs_id">1792</COLUMN>
...
Schaut man sich aber den konkreten Datensatz in der Datenbank (im Beispiel Oracle) an, so ist diese GID nicht dem Datensatz offensichtlich zugeordnet, da hier nicht die gleiche Repräsentation verwendet wird:
"FS_GID" (Datentyp RAW): DDD38859FFD40A965D441E63FBF689E2
"FS_ID" (Datentyp NUMBER): 1792
Gibt es eine Möglichkeit in FS bzw. über ein DB-Query eine "lesbare" Zuordnung zu ermöglichen?
Tags: database, datenquelle, gid, query
-
Author: Peter_Jodeleit - 11/24/2014 11:33
Mit dieser Funktion können UUIDS in das Speicherformat konvertiert werden:
public static String convert(final UUID uuid) {
final long l = uuid.getLeastSignificantBits();
final long m = uuid.getMostSignificantBits();
return hex(l, 0) + hex(l, 1) + hex(l, 2) + hex(l, 3) + hex(l, 4) + hex(l, 5) + hex(l, 6) + hex(l, 7) +
hex(m, 0) + hex(m, 1) + hex(m, 2) + hex(m, 3) + hex(m, 4) + hex(m, 5) + hex(m, 6) + hex(m, 7);
}
private static String hex(final long num, final int byteNum) {
return Long.toHexString((num >> (byteNum * 8))& 0xff).toUpperCase(Locale.US);
}
0
Vous devez vous connecter pour laisser un commentaire.
Commentaires
1 commentaire