Вы делаете правильное замечание, что можно избежать некоторого количества запросов, к которым присоединяются, при помощи того, что звонило естественный ключ вместо суррогатный ключ . Только можно оценить, если преимущество этого является значительным в приложении.
таким образом, можно измерить запросы в приложении, которые являются самыми важными для скорости, потому что они работают с большими объемами данных, или они выполняются очень часто. Если эти запросы извлекают выгоду из устранения соединения и не страдают при помощи varchar первичного ключа, то сделайте это.
не используют ни одну стратегию всех таблиц в Вашей базе данных. Вероятно, что в некоторых случаях, естественный ключ лучше, но в других случаях суррогатный ключ лучше.
Другие люди делают правильное замечание, что редко на практике для естественного ключа никогда не изменить или иметь дубликаты, таким образом, суррогатные ключи обычно стоят.
Простой ответ:
2 вещи, которые я обнаружил.
1) обязательно указывайте имя объекта form-bean / command в теге form
<form:form method="post" enctype="multipart/form-data" commandName="salesOrder">
2) обязательно называйте объект form-bean / command именем его класса. В приведенном выше примере мой класс - com.abc.xyz.SalesOrder. Если я назову его "so" или "order" в модели, то он не будет показывать ошибки.