Это может быть излишним, но вы задумывались о написании своего собственного CustomIDGenerator, который, вероятно, подклассы говорят AutoGenerator hibernate и предоставляет пару методов, где вы можете установить идентификатор следующего объекта класса, который будет сгенерирован, например,
class MyGenerator extends .... {
public void setIdForObject(Class clazz, Long id) {
//once you use this API, the next time an object of
//type clazz is saved the id is used
}
public void setIdForObject(Class clazz, Long id, Matcher matcher) {
//once you use this API, the next time an object of
//type clazz is saved and the matcher matches yes the id will be
//assigned. Your matcher can match properties like name, age etc
//to say the matched object
}
}
Это может быть сложно, но, по крайней мере, возможно согласно hibernate doco