To delete just the association is simple. Assume the scenario below:
@ManyToMany(cascade = CascadeType.PERSIST)
private List<Foo> foos;
If you remove a foos element and save the entity you will delete the record in the join table.
EDIT
I particularly do not like to get away from the ORM context. So if you go through the list and delete the elements one by one is a burden I can give you two alternatives:
If you can use java 8, use a lamda. With a single command you go through the entire list and remove what you want.
If Java 8 is not a solution, use utluiz's answer. She answers.
As I told you in the comments: This type of approach you are looking for is not cool because it creates the need to perform a delete and then refresh to refresh your entire session. which in the end will be less performative), in addition to leaving your system liable to error, as it will be dealing with detachados objects that can accidentally retachados , making your system inconsistent.
Scrolling through the list, deleting the elements and then saving the object is less costly in most cases, since you are working in-memory most of the time, and more robust because you are not leaving of the ORM context.
So if you're going to work in a different way than this, I suggest you look at whether JDBC will not serve you better.