OK some basic changes I made to your code to demonstrate some points, you do not have to use it as I wrote it, you can do which ever way you like and feel that is easier for you.
First, for your Id's. It is best-practice to always name those attributes at "id". Hibernate will automatically take the class name and concatenate it with the "id" attribute so it will look for a column called TOON_ID
Hibernate also takes the class name and looks for a table with the same name, so you don't have to have the @Table annotation, unless you want or have a table name that is different than the class name.
@Columns are really only needed if the name of the column is different than the name of the class attribute.
@JoinColumn is also only needed if the foreign key column name is not the attribute's name concatenated with "id"
And the ToonClass
The only comment I might have on this is that I would probably keep the name of the column for the "TOON_CLASS_NAME" to be just "NAME"
The big key besides the "id" attribute is that I only annotate if the smart defaults don't work, meaning annotate to the exception only. But that part is my preference.
Now, let me do another post where I actually answer the question that you actually asked us for.
Mark