I'm pretty sure I have an example of what I'm proposing in a project somewhere, but alas, I cannot easily locate it. Nor, unfortunately, my venerable aPress JPA2 reference, which
might illustrate such a concept.
The primary problem as I noww recall isn't so much the name of the join table - which can be overridden on the annotation - but on its definition and maintenance. A basic join table requires no application logic because
JSF understands everything that should be done with it and does it automatically.
But I
think that you can define your join table as @Entity and thereby make it available for additional payloads and operations. Although I'm unsure as to whether doing so would be blessed in all JPA versions and implementations. It's possible that being both an @Entity and a @Jointable might offend some implementations.
Obviously you can define an
ad hoc manual Join Table as an Entity by simply making its primary key be the concatenation of the two (or more) foreign keys that reference a row in the table and doing many-to-one references from the tables that join on it. You don't get the full automation of a native @JoinTable, but it does give the join attributes.
Some people, when well-known sources tell them that fire will burn them, don't put their hands in the fire.
Some people, being skeptical, will put their hands in the fire, get burned, and learn not to put their hands in the fire.
And some people, believing that they know better than well-known sources, will claim it's a lie, put their hands in the fire, and continue to scream it's a lie even as their hands burn down to charred stumps.