Using the Entity class

I'm curious about how to use the Entity class. For example, when I add the Entity's Spatial to the tree, if I select it or collide with it, I'm going to get back the Spatial, not the Entity. Is there a document that describes how the Entity is meant to be used in general? Similarly, how are we meant to update Entities? Should I be keeping a list of all the Entities in my gamestate and then iterate over them for updates? Or is there another preferred means of dealing with them?

You can get the entity of a colliding geometry like so:

Geometry collidedGeom = ...
Spatial parent = collidedGeom.getParent();
while (parent != null && !(parent instanceof Entity)){
     parent = parent.getParent();
Entity entity = (Entity) parent;

The preferred way of updating entities is by extending the "Controller" class, and then attaching an instance of it to the entity using Entity.addController()

Hmm, am I looking at the wrong Entity class? Or has it changed since JME2? The one in JME2 is not a subclass of Spatial.