主キーに何も値を入れずに、saveOrUpdateメソッドで永続化しようとしたところ、以下のエラーが発生

javax.servlet.ServletException: org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): jp.co.perfectdrugstore.entitybean.customer.CustomerAddress
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:169)

主キーに値を入れていないので、当たり前といえば当たり前なんだけど、
他のテーブルでは、主キーの値の設定をマッピングファイルで、を使用して、自動生成(MySQLの場合なのでautoincrement)するようにしていたので、エラーが発生したテーブルと設定のポリシーが違っていたのが混乱の原因。

Hibernateは、使っているけれども、シャドウインフォメーションを使った永続化は、ほとんど行わない方針の設計なので、主キーの設定に関して、の自動生成は、行わないように統一する。

つまり、

MySQL側の主キーは、auto incrementを行わない。
プログラム側で、主キーとなる値を、データ挿入のタイミングで毎回生成する。
主キー(連番)の取得には、主キーでorder byし、最大の値+1を返す便利メソッドを用意する。

で対応しようと思う。