Obecnie używam języka ORMLite do pracy z bazą danych SQLite w systemie Android. W ramach tego pobieram garść danych z serwera zaplecza i chciałbym, aby te dane zostały dodane do bazy danych SQLite w dokładnie tym samym formacie, który znajduje się na serwerze zaplecza (tj. Identyfikatory są takie same, itp.) .Wstaw wiersz Androida/ORMLite z identyfikatorem
Moje pytanie brzmi: jeśli zapełnię mój obiekt do wpisania do bazy danych (nazwijmy to sprzętem), w tym pole generowany klucz/klucz podstawowy urządzenia za pomocą metody setId(), a następnie uruchomię funkcję DAO.create() z że wpis wyposażenia spowoduje, że identyfikator zostanie zapisany poprawnie? Próbowałem tego w ten sposób i wydaje mi się, że tak nie było. W takim przypadku spróbuję ponownie i będę szukał innych problemów, ale przy pierwszych kilku przejazdach nad kodem nie mogłem go znaleźć. Więc zasadniczo, jeśli zadzwonię do DAO.create() na obiekcie bazy danych z zestawem identyfikacyjnym, czy ten ID zostanie wysłany do bazy danych, a jeśli tak nie jest, w jaki sposób mogę wstawić wiersz z już wypełnioną wartością klucza głównego?
Dzięki!
Zrobiłem to, ale założyłem, że będę mógł również wprowadzić mój własny identyfikator, ponieważ w innych bazach danych mogę WSTAWIĆ z identyfikatorem, nawet jeśli ma wygenerowany automatycznie klucz podstawowy. Czy jest to coś charakterystycznego dla konfiguracji ORMLite, czy może baz danych SQLite? –
Jest to specyficzne dla ORMLite: zobacz http://ormlite.svn.sourceforge.net/viewvc/ormlite/ormlite-core/trunk/src/main/java/com/j256/ormlite/stmt/mapped/MappedCreate.java? wersja = 1861 i widok = znaczniki, wiersz 32.Zauważysz, że automatycznie przypisuje on identyfikator dla ustawień generatedId lub generatedIdSequence, bez sprawdzania, czy wartość jest już ustawiona. Jeśli korzystasz z SQLite, możesz po prostu napisać do bazy danych ręcznie, następnie załadować ponownie z ORMLite lub dodać oddzielną kolumnę dla identyfikatora bazy danych serwera (co robię, nawet jeśli nie używam ORMLite). – Femi