For the save() operation to be cascaded, you need to enable CascadeType.SAVE_UPDATE, using the proprietary Hibernate Cascade annotation, since save() is not a standard JPA operation. Or you need to use the persist() method, and not the save() method.
slabtop command (part of the package procps) shows top memory objects used by the kernel.
dstat can help you figure out what is happening. dstat -cdnpmgs --top-bio --top-cpu --top-mem
Also have a look at smem ("smem -kt"), it can show you nicely what is in your swap.
V. Snasel, Z. Horak, J. Kocibova, and A. Abraham. Web Intelligence and Intelligent Agent Technologies, 2009. WI-IAT '09. IEEE/WIC/ACM International Joint Conferences on, 3, page 38-41. (September 2009)