The first method you mentioned is the equivalent of using the refresh option in a microflow, so I don't think calling that from Java has any additional effect.
The second call refreshes all objects of a certain type, which might be a workaround for your issue, but I would try calling it as an after commit action.
Another workaround (very bad one), is simply closing and opening the form again.
There isn't an alternative. I tested the after commit event. With the javaaction:
addRefreshClass("MyFirstModule.Catalogue");`
I even tested the java action by calling it from an invoke button in the datagrid. That works fine, so the problem is the moment of calling the javaaction. Before and after commit doesn't do the trick.