fix: simple ORM for one struct and foreign references work

Currently, all methods declared in the Georm trait are available.

If a struct has an ID pointing towards another entity, the user can
create a get method to get the entity pointed at from the database
too (local one-to-one relationship).

I still need to implement remote one-to-one relationships (one-to-one
relationships when the ID of the remote object is not available
locally).

I still need to also test and debug one-to-many relationships (ID of
the remote entiies not available locally) and many-to-many
relationships (declared in a dedicated table).

For now, IDs in all cases are simple types recognized by SQLx that are
not arrays. Options are only supported when explicitely specified for
one-to-one relationships.
This commit is contained in:
2025-01-31 21:58:36 +01:00
parent 96ac2aa979
commit bca0619f30
19 changed files with 511 additions and 107 deletions

10
tests/fixtures/o2o.sql vendored Normal file
View File

@@ -0,0 +1,10 @@
INSERT INTO books (title, author_id)
VALUES ('The Lord of the Rings: The Fellowship of the Ring', 1),
('The Lord of the Rings: The Two Towers', 1),
('The Lord of the Rings: The Return of the King', 1),
('To Build a Fire', 3);
INSERT INTO reviews (book_id, review)
VALUES (1, 'Great book'),
(3, 'Awesome book'),
(2, 'Greatest book');

8
tests/fixtures/simple_struct.sql vendored Normal file
View File

@@ -0,0 +1,8 @@
INSERT INTO biographies (content)
VALUES ('Some text'),
('Some other text');
INSERT INTO authors (name, biography_id)
VALUES ('J.R.R. Tolkien', 2),
('George Orwell', NULL),
('Jack London', 1);