Возможно, в ответе A_M есть небольшая ошибка. По-моему, это должно быть:
@Entity class B { @ManyToMany @JoinTable ( name="A_B", joinColumns = {@JoinColumn(name="B_ID")}, inverseJoinColumns = {@JoinColumn(name="A_ID")} ) private List a; .. }