Używam greendao do utrzymywania bazy danych SQL na Androidzie. Obecnie mam problem z generowaniem encji z dwiema kolumnami jako kluczem podstawowym. Aby było jasne, mam kolumnę 1 i kolumnę 2 obie są wartościami Long i razem tworzą klucz podstawowy.Podstawowy klucz GreenDao na wielu kolumnach
Próbowałem modelować go jako
@Index(unique = true)
private Long column1, column2
ale to nie działa. Otrzymuję unikalne ograniczenie nie powiodło się podczas próby wstawienia i przy próbie wstawieniaOrReplace po prostu zastępuje na podstawie identyfikatora column1.
Udało mi się dodać unikalne ograniczenia do pól, wykonując następujące czynności. Na przykład, gdy chcemy, aby tabela 'klienta' miała unikalne ograniczenie na obu polach imienia i nazwiska (w praktyce jest to złe, ale tylko przykład), umieszczasz informacje w adnotacji' @ Entity' (Green9,4 3) w następujący sposób: '@Entity (nameInDb =" customer ", indexes = {@Index (value =" firstname, lastname ", unique = true)})' –
To jest najlepsze rozwiązanie do tej pory i działa idealnie. Modelowanie Greendao Entity mówi to samo. http://greenrobot.org/greendao/documentation/modelling-entities/#crayon-5949da361cc17011493334 – xrnd