когда это имеет значение об этом и задумался vs тоже с гуид?
В оригинальном ишуе написано. В целом вся проблема в том что ты можешь спарсить гуид v7 (sortable) из строки респонса апи, а потом закинуть его в свою БД (как байты) и получишь разрыв жопы
То есть надо использовать комплиментарные методы десериализации и сериализации, что таннер и предлагает сделать
А как быть с ууидами новых версий, где строгий лейаут?
В том что в случае с лонгом он хотя бы будет хранить все свои байты либо a=>z либо z=>a
Промахнулся, реплай сюда
Это можно обойти указанием параметра конекшн стринга (если драйвер бд это предусмотрел), но если ты/тиммейт/коллега/контрактор потерял/забыл поставить правильное значение этого параметра - ты тоже проиграл
Ещё можно обойти реализацией собственного маппинга примитива, если через рефлекшн можно подлезть и поменять его (ну или через IgnoreAccessChecksTo и прямой вызов). Поменялся внутренний API - ты проиграл. Забыли вызвать метод для переопределения маппинга - тоже проиграл.
Ещё можно потюнить маппинг в ОРМ, но там те же проблемы
Плюс если ты потюнил его только в ОРМ, кто то может пойти в обход ОРМ напрямую в базу через драйвер, где такого маппинга не будет - снова проиграл
Обсуждают сегодня