So the issue was one of nested transactions. Apparently you can’t. I would expect an exception to be thrown when I tried to start the second transaction, not when the outer transaction commits though.
Now my next great frustration. I try to remove an entity, and the code following acts as if its removed, but the removal never makes it to the database. This appears to be referential integrity run amok, as another entity references this entity and disallows the removal. No amount of cascading seems to make it go away, so instead I have to find the entity that references it and remove it from there.
JDBC was so mush easier, and I never had any problems with referential integrity. Entity beans just aren’t making my life any easier.