2. Create a New EntityΒΆ
In the previous step, we have an entity manager (entity_manager
) and two entity classes (Player
and Team
).
Now, we are going to create a new entity.
Let’s create one player.
sid = Player('Sid', 5)
session = entity_manager.open_session()
repository = session.repository(Player)
repository.persist(sid)
repository.commit()
From the code, sid = Player('Sid')
is to create an object.
The rest are pretty simple.
- We open a DB (pseudo) session with
open_session()
, - find the corresponding repository, referred as
repository
, - tell the repository to push the new object on commit with
persist()
, - and finally commit the change to the database.
Note
Alternatively, you may forget repository
by using session
directly
by replacing everything about repository
with the following code.
session.persist(sid)
session.flush()
where the session’s persist
and commit
are the same as the repository’s
persist
and flush
respectively. For the sake of tutorial, we will
keep using the repository approach.
Warning
The database session is pseudo for unsupported databases.
Note
The way we use open_session()
here is to open an unsupervised session. The session connection cannot be closed
by the supervising entity manager but the connection is still closed as soon as the process is terminated.
After this process, you can verify with MongoDB CLI (mongo sample_db
) by running db.player.find()
. You should
be able to see the result on the screen like the following (except _id
).
{
"_id" : ObjectId("abc"),
"name" : "Sid",
"level": 5,
"team" : null
}