- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Datensätze in einer Datenbank per GID identifizieren
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?
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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);
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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);
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Mathias,
benötigst du noch weitere Hilfe oder konnte dir Peters Antwort bereits weiterhelfen? In diesem Fall wäre es toll, wenn du seine "richtige Antwort" entsprechend markierst.
Solltest du eine eigene Lösung gefunden haben, wäre es super, wenn du diese hier bereitstellst.
Viele Grüße
Michaela
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Verbesserungsvorschlag: Es wäre äußerst hilfreich wenn bei den Datensatzeigenschaften im SiteArchitect auch diese "Speicherformat"-Repräsentation angezeigt werden würde. Dann könnte man einen Datensatz auch ohne die FS_ID eindeutig identifizieren.
Im Allgemeinen macht einem diese unterschiedliche Repräsentation es nicht gerade einfach die Datensätze in der DB und im CMS korrekt zuzuordnen.
Gibt es auch einen Code-Schnipsel für die umgekehrte Transformation (Java / SQL)?

