Currently, services are annotated with @Transactional, making all methods in the corresponding class transacational (though not the ITDs). However, when using GAE, you can only act on a single entity group within a transaction, which limits functionality (At least when using GWT...I don't have experience using the other web technologies).
Consider the following example. An application is designed to save orders. Each order has a corresponding customer which is stored separately. If you create an order and customer in the GWT application, you must create two separate requests to save each since they are in different entity groups. However, if you create a method in the service that is not transactional (which is impossible since the class itself is annotated @Transactional), you can call two transactional methods within the non-transactional method, allowing you to save both entities in the same request.
Even though the above use case is quite specific, in general marking services as @Transactional reduces flexibility. The developer should have the option to decide which methods are transactional.
Recommend removing the "declare @type: EntityServiceImpl: @Transactional" and simply annotating each method with @Transactional. This should resolve ROO-3203 as well.