エンタープライズアプリケーションアーキテクチャパターンの正誤表

いつものことですが、私自身(とコピーエディター)が最大限の注意を払ったにもかかわらず、いくつかのエラーがどうしても紛れ込んでしまいます。これらのエラーのほとんどは文法的なタイプミスで、正直なところ、私には見つけるのが苦手です。重大な混乱を引き起こす可能性のあるものについては、ハイライト表示しました。それらのエラーについては心からお詫び申し上げます。以下に、私が把握しているエラーの一覧を示します。

第19刷以降のエラー

121ページ: クラス図において、クラスProductのメソッド "calculateRecognitions" は、123ページのコードと一致させるために、"calculateRevenueRecognitions" とすべきです。

156ページ: PersonGateway.update() および insert() のコード例では、メソッド getID() が使用されていますが、getID() がどこから来ているのかが明確ではありません。IDは、Row Data GatewaysのLayer Supertypeに格納されるはずです。[再版では修正できません]

201ページ: 6番目の段落で、"These problem don't hit" は "These problems don't hit" とすべきです。

201ページ: 2番目の段落で、"a legal value field value" は "a legalvaluefield value" とすべきです。

206ページ: 最後のコード例で、見出し "class Domain Object" は "class DomainObject" (スペースなし) とすべきです。

211ページ: 3番目の段落で、"… a loading function than can be supplied …" は "… a loading function that can be supplied …" とすべきです。

259ページ: 最初のテキスト段落の4行目で、"If it not I load…" は "If not, I load…" とすべきです。

357ページ: 3番目の箇条書きで、"(the number of balls he faced divided by the runs he scored)" は逆の順番で、"(the runs he scored divided by the number of balls he faced)" とすべきです。

374ページ: 2番目のコード例で、album = Album.findNamed("1234"); の行を削除する必要があります。

389ページ: 「仕組み」の下の最初の文。「Remote Facadeは、標準的なOOアプローチでの分散問題を解決します...」は、「Remote Facadeは、標準的なOOアプローチ分散問題を解決します...」とすべきです。

429ページ: 最後から2番目の行。"access to the lock table must by serialized" は "access to the lock table must be serialized" とすべきです。

432ページ: create table のコード行で、ownerid bigintownerid varchar とすべきです。

494ページ: 示されている配分アルゴリズムは、正の金額でのみ機能します。負の金額については、読者の演習として解決策を残します。[再版では修正できません]

第16刷から第19刷のエラー

21ページ: 5行目で、"there is no a human being" は "there is noahuman being" とすべきです。[第19刷で修正済み]

121ページ: クラス図において、クラスProductのメソッド "calculateRecognitions" は、123ページのコードと一致させるために、"calculateRevenueRecognitions" とすべきです。

156ページ: PersonGateway.update() および insert() のコード例では、メソッド getID() が使用されていますが、getID() がどこから来ているのかが明確ではありません。IDは、Row Data GatewaysのLayer Supertypeに格納されるはずです。[再版では修正できません]

192ページ: 最後のテキスト段落で、"Now we can now" は "Now we cannow" とすべきです。[第19刷で修正済み]

201ページ: 6番目の段落で、"These problem don't hit" は "These problems don't hit" とすべきです。

201ページ: 2番目の段落で、"a legal value field value" は "a legalvaluefield value" とすべきです。

206ページ: 最後のコード例で、見出し "class Domain Object" は "class DomainObject" (スペースなし) とすべきです。

211ページ: 3番目の段落で、"… a loading function than can be supplied …" は "… a loading function that can be supplied …" とすべきです。

259ページ: 最初のテキスト段落の4行目で、"If it not I load…" は "If not, I load…" とすべきです。

357ページ: 3番目の箇条書きで、"(the number of balls he faced divided by the runs he scored)" は逆の順番で、"(the runs he scored divided by the number of balls he faced)" とすべきです。

371ページ: 例のセクションの最初の文。"This approach to a Two Step View uses a two-stage XLST transformation" は "This approach to a Two Step View uses a two-stage XSLT transformation" とすべきです。[第19刷で修正済み]

374ページ: 2番目のコード例で、album = Album.findNamed("1234"); の行を削除する必要があります。

389ページ: 「仕組み」の下の最初の文。「Remote Facadeは、標準的なOOアプローチでの分散問題を解決します...」は、「Remote Facadeは、標準的なOOアプローチ分散問題を解決します...」とすべきです。

423ページ: 最後のコードブロック、最初の行 class class AbstractMapper...class class AbstractMapper... とすべきです。[第19刷で修正済み]

429ページ: 最後から2番目の行。"access to the lock table must by serialized" は "access to the lock table must be serialized" とすべきです。

432ページ: コードブロックで、class ExclusiveReadLockManagerDBImpl implements ExclusiveLockManager...class ExclusiveReadLockManagerDBImpl implements ExclusiveReadLockManager とすべきです。[第19刷で修正済み]

432ページ: create table のコード行で、ownerid bigintownerid varchar とすべきです。

494ページ: 示されている配分アルゴリズムは、正の金額でのみ機能します。負の金額については、読者の演習として解決策を残します。[再版では修正できません]

第13刷から第16刷のエラー

21ページ: 5行目で、"there is no a human being" は "there is noahuman being" とすべきです。[第19刷で修正済み]

121ページ: クラス図において、クラスProductのメソッド "calculateRecognitions" は、123ページのコードと一致させるために、"calculateRevenueRecognitions" とすべきです。

156ページ: PersonGateway.update() および insert() のコード例では、メソッド getID() が使用されていますが、getID() がどこから来ているのかが明確ではありません。IDは、Row Data GatewaysのLayer Supertypeに格納されるはずです。[再版では修正できません]

192ページ: 最後のテキスト段落で、"Now we can now" は "Now we cannow" とすべきです。[第19刷で修正済み]

201ページ: 6番目の段落で、"These problem don't hit" は "These problems don't hit" とすべきです。

201ページ: 2番目の段落で、"a legal value field value" は "a legalvaluefield value" とすべきです。

206ページ: 最後のコード例で、見出し "class Domain Object" は "class DomainObject" (スペースなし) とすべきです。

211ページ: 3番目の段落で、"… a loading function than can be supplied …" は "… a loading function that can be supplied …" とすべきです。

238ページ: 4番目の段落、最後の文。"diff with the database is you're using" は "diff with the database if you're using" とすべきです。[第16刷で修正済み]

259ページ: 最初のテキスト段落の4行目で、"If it not I load…" は "If not, I load…" とすべきです。

279ページ: 最後の段落の始め "Rremember" は "Remember" とすべきです。[第16刷で修正済み]

294ページ: 2番目の段落の終わりで、"Thus, youthusneed a key" が過剰です。[第16刷で修正済み]

357ページ: 3番目の箇条書きで、"(the number of balls he faced divided by the runs he scored)" は逆の順番で、"(the runs he scored divided by the number of balls he faced)" とすべきです。

371ページ: 例のセクションの最初の文。"This approach to a Two Step View uses a two-stage XLST transformation" は "This approach to a Two Step View uses a two-stage XSLT transformation" とすべきです。[第19刷で修正済み]

374ページ: 2番目のコード例で、album = Album.findNamed("1234"); の行を削除する必要があります。

380ページ: 最初の段落、最初の文。"the view with which display the response" は "the view with which to display the response" とすべきです。[第16刷で修正済み]

389ページ: 「仕組み」の下の最初の文。「Remote Facadeは、標準的なOOアプローチでの分散問題を解決します...」は、「Remote Facadeは、標準的なOOアプローチ分散問題を解決します...」とすべきです。

412ページ: 2番目の文に不要な単語があります。"I write methods to read and write an XML element to representthat classeach Data Transfer Object class." [第16刷で修正済み]

423ページ: 最後のコードブロック、最初の行 class class AbstractMapper...class class AbstractMapper... とすべきです。[第19刷で修正済み]

423ページ: ページの下部にあるコード例で、別のコード行を挿入する必要があります。 stmt.setLong(1,object.getId().longValue()); の行の後ろに、stmt.setInt(2, object.getVersion() + 1); の行を追加します。[第16刷で修正済み]

429ページ: 最後から2番目の行。"access to the lock table must by serialized" は "access to the lock table must be serialized" とすべきです。

432ページ: コードブロックで、class ExclusiveReadLockManagerDBImpl implements ExclusiveLockManager...class ExclusiveReadLockManagerDBImpl implements ExclusiveReadLockManager とすべきです。[第19刷で修正済み]

432ページ: create table のコード行で、ownerid bigintownerid varchar とすべきです。

494ページ: 示されている配分アルゴリズムは、正の金額でのみ機能します。負の金額については、読者の演習として解決策を残します。[再版では修正できません]

第10刷から第13刷のエラー

21ページ: 5行目で、"there is no a human being" は "there is noahuman being" とすべきです。[第19刷で修正済み]

21ページ: 最上行:"would be particularly for communication with existing packages" は "would be particularly common for communication with existing packages" とすべきです。[第13刷で修正済み]

121ページ: クラス図において、クラスProductのメソッド "calculateRecognitions" は、123ページのコードと一致させるために、"calculateRevenueRecognitions" とすべきです。

156ページ: PersonGateway.update() および insert() のコード例では、メソッド getID() が使用されていますが、getID() がどこから来ているのかが明確ではありません。IDは、Row Data GatewaysのLayer Supertypeに格納されるはずです。[再版では修正できません]

192ページ: 最後のテキスト段落で、"Now we can now" は "Now we cannow" とすべきです。[第19刷で修正済み]

201ページ: 6番目の段落で、"These problem don't hit" は "These problems don't hit" とすべきです。

201ページ: 2番目の段落で、"a legal value field value" は "a legalvaluefield value" とすべきです。

206ページ: 最後のコード例で、見出し "class Domain Object" は "class DomainObject" (スペースなし) とすべきです。

211ページ: 3番目の段落で、"… a loading function than can be supplied …" は "… a loading function that can be supplied …" とすべきです。

238ページ: 4番目の段落、最後の文。"diff with the database is you're using" は "diff with the database if you're using" とすべきです。[第16刷で修正済み]

259ページ: 最初のテキスト段落の4行目で、"If it not I load…" は "If not, I load…" とすべきです。

279ページ: 最後の段落の始め "Rremember" は "Remember" とすべきです。[第16刷で修正済み]

294ページ: 2番目の段落の終わりで、"Thus, youthusneed a key" が過剰です。[第16刷で修正済み]

357ページ: 3番目の箇条書きで、"(the number of balls he faced divided by the runs he scored)" は逆の順番で、"(the runs he scored divided by the number of balls he faced)" とすべきです。

371ページ: 例のセクションの最初の文。"This approach to a Two Step View uses a two-stage XLST transformation" は "This approach to a Two Step View uses a two-stage XSLT transformation" とすべきです。[第19刷で修正済み]

374ページ: 2番目のコード例で、album = Album.findNamed("1234"); の行を削除する必要があります。

380ページ: 最初の段落、最初の文。"the view with which display the response" は "the view with which to display the response" とすべきです。[第16刷で修正済み]

389ページ: 「仕組み」の下の最初の文。「Remote Facadeは、標準的なOOアプローチでの分散問題を解決します...」は、「Remote Facadeは、標準的なOOアプローチ分散問題を解決します...」とすべきです。

412ページ: 2番目の文に不要な単語があります。"I write methods to read and write an XML element to representthat classeach Data Transfer Object class." [第16刷で修正済み]

423ページ: 最後のコードブロック、最初の行 class class AbstractMapper...class class AbstractMapper... とすべきです。[第19刷で修正済み]

423ページ: ページの下部にあるコード例で、別のコード行を挿入する必要があります。 stmt.setLong(1,object.getId().longValue()); の行の後ろに、stmt.setInt(2, object.getVersion() + 1); の行を追加します。[第16刷で修正済み]

429ページ: 最後から2番目の行。"access to the lock table must by serialized" は "access to the lock table must be serialized" とすべきです。

432ページ: コードブロックで、class ExclusiveReadLockManagerDBImpl implements ExclusiveLockManager...class ExclusiveReadLockManagerDBImpl implements ExclusiveReadLockManager とすべきです。[第19刷で修正済み]

432ページ: create table のコード行で、ownerid bigintownerid varchar とすべきです。

494ページ: 示されている配分アルゴリズムは、正の金額でのみ機能します。負の金額については、読者の演習として解決策を残します。[再版では修正できません]

第9刷のエラー

21ページ: 5行目で、"there is no a human being" は "there is noahuman being" とすべきです。[第19刷で修正済み]

21ページ: 最上行:"would be particularly for communication with existing packages" は "would be particularly common for communication with existing packages" とすべきです。[第13刷で修正済み]

121ページ: クラス図において、クラスProductのメソッド "calculateRecognitions" は、123ページのコードと一致させるために、"calculateRevenueRecognitions" とすべきです。

156ページ: PersonGateway.update() および insert() のコード例では、メソッド getID() が使用されていますが、getID() がどこから来ているのかが明確ではありません。IDは、Row Data GatewaysのLayer Supertypeに格納されるはずです。[再版では修正できません]

192ページ: 最後のテキスト段落で、"Now we can now" は "Now we cannow" とすべきです。[第19刷で修正済み]

201ページ: 6番目の段落で、"These problem don't hit" は "These problems don't hit" とすべきです。

201ページ: 2番目の段落で、"a legal value field value" は "a legalvaluefield value" とすべきです。

206ページ: 最後のコード例で、見出し "class Domain Object" は "class DomainObject" (スペースなし) とすべきです。

207ページ: 最初のコード例で、class Domain Object は class DomainObject (スペースなし) とすべきです。[第10刷で修正済み]

211ページ: 3番目の段落で、"… a loading function than can be supplied …" は "… a loading function that can be supplied …" とすべきです。

238ページ: 4番目の段落、最後の文。"diff with the database is you're using" は "diff with the database if you're using" とすべきです。[第16刷で修正済み]

259ページ: 最初のテキスト段落の4行目で、"If it not I load…" は "If not, I load…" とすべきです。

279ページ: 最後の段落の始め "Rremember" は "Remember" とすべきです。[第16刷で修正済み]

294ページ: 2番目の段落の終わりで、"Thus, youthusneed a key" が過剰です。[第16刷で修正済み]

357ページ: 3番目の箇条書きで、"(the number of balls he faced divided by the runs he scored)" は逆の順番で、"(the runs he scored divided by the number of balls he faced)" とすべきです。

371ページ: 例のセクションの最初の文。"This approach to a Two Step View uses a two-stage XLST transformation" は "This approach to a Two Step View uses a two-stage XSLT transformation" とすべきです。[第19刷で修正済み]

374ページ: 2番目のコード例で、album = Album.findNamed("1234"); の行を削除する必要があります。

380ページ: 最初の段落、最初の文。"the view with which display the response" は "the view with which to display the response" とすべきです。[第16刷で修正済み]

389ページ: 「仕組み」の下の最初の文。「Remote Facadeは、標準的なOOアプローチでの分散問題を解決します...」は、「Remote Facadeは、標準的なOOアプローチ分散問題を解決します...」とすべきです。

412ページ: 2番目の文に不要な単語があります。"I write methods to read and write an XML element to representthat classeach Data Transfer Object class." [第16刷で修正済み]

423ページ: 最後のコードブロック、最初の行 class class AbstractMapper...class class AbstractMapper... とすべきです。[第19刷で修正済み]

423ページ: ページの下部にあるコード例で、別のコード行を挿入する必要があります。 stmt.setLong(1,object.getId().longValue()); の行の後ろに、stmt.setInt(2, object.getVersion() + 1); の行を追加します。[第16刷で修正済み]

429ページ: 最後から2番目の行。"access to the lock table must by serialized" は "access to the lock table must be serialized" とすべきです。

432ページ: コードブロックで、class ExclusiveReadLockManagerDBImpl implements ExclusiveLockManager...class ExclusiveReadLockManagerDBImpl implements ExclusiveReadLockManager とすべきです。[第19刷で修正済み]

432ページ: create table のコード行で、ownerid bigintownerid varchar とすべきです。

485ページ: 最後のコード例で、Person martin = Registry.personFinder().find(1); の行は Person martin = f1.find(1); とすべきです。[第10刷で修正済み]

494ページ: 示されている配分アルゴリズムは、正の金額でのみ機能します。負の金額については、読者の演習として解決策を残します。[再版では修正できません]

497ページ: 2番目の段落の最後の文で、"you can accumulate charges against an occupant customer even you can't do much billing" は "you can accumulate charges against an occupant customer even if you can't do much billing" とすべきです。[第10刷で修正済み]

第8刷のエラー

21ページ: 5行目で、"there is no a human being" は "there is noahuman being" とすべきです。[第19刷で修正済み]

21ページ: 最上行:"would be particularly for communication with existing packages" は "would be particularly common for communication with existing packages" とすべきです。[第13刷で修正済み]

121ページ: クラス図において、クラスProductのメソッド "calculateRecognitions" は、123ページのコードと一致させるために、"calculateRevenueRecognitions" とすべきです。

156ページ: PersonGateway.update() および insert() のコード例では、メソッド getID() が使用されていますが、getID() がどこから来ているのかが明確ではありません。IDは、Row Data GatewaysのLayer Supertypeに格納されるはずです。[再版では修正できません]

192ページ: 最後のテキスト段落で、"Now we can now" は "Now we cannow" とすべきです。[第19刷で修正済み]

201ページ: 6番目の段落で、"These problem don't hit" は "These problems don't hit" とすべきです。

201ページ: 2番目の段落で、"a legal value field value" は "a legalvaluefield value" とすべきです。

206ページ: 最後のコード例で、見出し "class Domain Object" は "class DomainObject" (スペースなし) とすべきです。

207ページ: 最初のコード例で、class Domain Object は class DomainObject (スペースなし) とすべきです。[第10刷で修正済み]

211ページ: 3番目の段落で、"… a loading function than can be supplied …" は "… a loading function that can be supplied …" とすべきです。

238ページ: 4番目の段落、最後の文。"diff with the database is you're using" は "diff with the database if you're using" とすべきです。[第16刷で修正済み]

259ページ: 最初のテキスト段落の4行目で、"If it not I load…" は "If not, I load…" とすべきです。

279ページ: 最後の段落の始め "Rremember" は "Remember" とすべきです。[第16刷で修正済み]

294ページ: 2番目の段落の終わりで、"Thus, youthusneed a key" が過剰です。[第16刷で修正済み]

351ページ: 3番目の段落の最後の行。"(providing your HTML is XHMTL...)" は "(providing your HTML is XHTML...)" とすべきです。当然ですね。[第9刷で修正済み]

357ページ: 3番目の箇条書きで、"(the number of balls he faced divided by the runs he scored)" は逆の順番で、"(the runs he scored divided by the number of balls he faced)" とすべきです。

371ページ: 例のセクションの最初の文。"This approach to a Two Step View uses a two-stage XLST transformation" は "This approach to a Two Step View uses a two-stage XSLT transformation" とすべきです。[第19刷で修正済み]

374ページ: 2番目のコード例で、album = Album.findNamed("1234"); の行を削除する必要があります。

380ページ: 最初の段落、最初の文。"the view with which display the response" は "the view with which to display the response" とすべきです。[第16刷で修正済み]

389ページ: 「仕組み」の下の最初の文。「Remote Facadeは、標準的なOOアプローチでの分散問題を解決します...」は、「Remote Facadeは、標準的なOOアプローチ分散問題を解決します...」とすべきです。

412ページ: 2番目の文に不要な単語があります。"I write methods to read and write an XML element to representthat classeach Data Transfer Object class." [第16刷で修正済み]

423ページ: 最後のコードブロック、最初の行 class class AbstractMapper...class class AbstractMapper... とすべきです。[第19刷で修正済み]

423ページ: ページの下部にあるコード例で、別のコード行を挿入する必要があります。 stmt.setLong(1,object.getId().longValue()); の行の後ろに、stmt.setInt(2, object.getVersion() + 1); の行を追加します。[第16刷で修正済み]

429ページ: 最後から2番目の行。"access to the lock table must by serialized" は "access to the lock table must be serialized" とすべきです。

432ページ: コードブロックで、class ExclusiveReadLockManagerDBImpl implements ExclusiveLockManager...class ExclusiveReadLockManagerDBImpl implements ExclusiveReadLockManager とすべきです。[第19刷で修正済み]

432ページ: create table のコード行で、ownerid bigintownerid varchar とすべきです。

436ページ: コードで、"class EditCustomerCommand implements Command..." は "class EditCustomerCommand extends BusinessTransactionCommand..." とすべきです。同様に、"class SaveCustomerCommand implements Command..." は "class SaveCustomerCommand extends BusinessTransactionCommand..." とすべきです。(私の気の利いた自動インポート機能における小さな、しかし厄介なギャップです。)[第9刷で修正済み]

485ページ: 最後のコード例で、Person martin = Registry.personFinder().find(1); の行は Person martin = f1.find(1); とすべきです。[第10刷で修正済み]

494ページ: 示されている配分アルゴリズムは、正の金額でのみ機能します。負の金額については、読者の演習として解決策を残します。[再版では修正できません]

497ページ: 2番目の段落の最後の文で、"you can accumulate charges against an occupant customer even you can't do much billing" は "you can accumulate charges against an occupant customer even if you can't do much billing" とすべきです。[第10刷で修正済み]

第6刷から第8刷のエラー

21ページ: 5行目で、"there is no a human being" は "there is noahuman being" とすべきです。[第19刷で修正済み]

21ページ: 最上行:"would be particularly for communication with existing packages" は "would be particularly common for communication with existing packages" とすべきです。[第13刷で修正済み]

34ページ: (第7刷のみ) 一部のコピーでは、印刷エラーのため、このページが完全に空白になっています。この問題が発生した場合は、Addison WesleyのJohn Fuller までご連絡ください。[第8刷で修正済み]

121ページ: クラス図において、クラスProductのメソッド "calculateRecognitions" は、123ページのコードと一致させるために、"calculateRevenueRecognitions" とすべきです。

156ページ: PersonGateway.update() および insert() のコード例では、メソッド getID() が使用されていますが、getID() がどこから来ているのかが明確ではありません。IDは、Row Data GatewaysのLayer Supertypeに格納されるはずです。[再版では修正できません]

192ページ: 最後のテキスト段落で、"Now we can now" は "Now we cannow" とすべきです。[第19刷で修正済み]

201ページ: 6番目の段落で、"These problem don't hit" は "These problems don't hit" とすべきです。

201ページ: 2番目の段落で、"a legal value field value" は "a legalvaluefield value" とすべきです。

206ページ: 最後のコード例で、見出し "class Domain Object" は "class DomainObject" (スペースなし) とすべきです。

207ページ: 最初のコード例で、class Domain Object は class DomainObject (スペースなし) とすべきです。[第10刷で修正済み]

211ページ: 3番目の段落で、"… a loading function than can be supplied …" は "… a loading function that can be supplied …" とすべきです。

238ページ: 4番目の段落、最後の文。"diff with the database is you're using" は "diff with the database if you're using" とすべきです。[第16刷で修正済み]

259ページ: 最初のテキスト段落の4行目で、"If it not I load…" は "If not, I load…" とすべきです。

279ページ: 最後の段落の始め "Rremember" は "Remember" とすべきです。[第16刷で修正済み]

294ページ: 2番目の段落の終わりで、"Thus, youthusneed a key" が過剰です。[第16刷で修正済み]

351ページ: 3番目の段落の最後の行。"(providing your HTML is XHMTL...)" は "(providing your HTML is XHTML...)" とすべきです。当然ですね。[第9刷で修正済み]

357ページ: 3番目の箇条書きで、"(the number of balls he faced divided by the runs he scored)" は逆の順番で、"(the runs he scored divided by the number of balls he faced)" とすべきです。

371ページ: 例のセクションの最初の文。"This approach to a Two Step View uses a two-stage XLST transformation" は "This approach to a Two Step View uses a two-stage XSLT transformation" とすべきです。[第19刷で修正済み]

374ページ: 2番目のコード例で、album = Album.findNamed("1234"); の行を削除する必要があります。

380ページ: 最初の段落、最初の文。"the view with which display the response" は "the view with which to display the response" とすべきです。[第16刷で修正済み]

389ページ: 「仕組み」の下の最初の文。「Remote Facadeは、標準的なOOアプローチでの分散問題を解決します...」は、「Remote Facadeは、標準的なOOアプローチ分散問題を解決します...」とすべきです。

412ページ: 2番目の文に不要な単語があります。"I write methods to read and write an XML element to representthat classeach Data Transfer Object class." [第16刷で修正済み]

423ページ: 最後のコードブロック、最初の行 class class AbstractMapper...class class AbstractMapper... とすべきです。[第19刷で修正済み]

423ページ: ページの下部にあるコード例で、別のコード行を挿入する必要があります。 stmt.setLong(1,object.getId().longValue()); の行の後ろに、stmt.setInt(2, object.getVersion() + 1); の行を追加します。[第16刷で修正済み]

429ページ: 最後から2番目の行。"access to the lock table must by serialized" は "access to the lock table must be serialized" とすべきです。

432ページ: コードブロックで、class ExclusiveReadLockManagerDBImpl implements ExclusiveLockManager...class ExclusiveReadLockManagerDBImpl implements ExclusiveReadLockManager とすべきです。[第19刷で修正済み]

432ページ: create table のコード行で、ownerid bigintownerid varchar とすべきです。

436ページ: コードで、"class EditCustomerCommand implements Command..." は "class EditCustomerCommand extends BusinessTransactionCommand..." とすべきです。同様に、"class SaveCustomerCommand implements Command..." は "class SaveCustomerCommand extends BusinessTransactionCommand..." とすべきです。(私の気の利いた自動インポート機能における小さな、しかし厄介なギャップです。)[第9刷で修正済み]

485ページ: 最後のコード例で、Person martin = Registry.personFinder().find(1); の行は Person martin = f1.find(1); とすべきです。[第10刷で修正済み]

494ページ: 示されている配分アルゴリズムは、正の金額でのみ機能します。負の金額については、読者の演習として解決策を残します。[再版では修正できません]

497ページ: 2番目の段落の最後の文で、"you can accumulate charges against an occupant customer even you can't do much billing" は "you can accumulate charges against an occupant customer even if you can't do much billing" とすべきです。[第10刷で修正済み]

第5刷のエラー

21ページ: 5行目で、"there is no a human being" は "there is noahuman being" とすべきです。[第19刷で修正済み]

21ページ: 最上行:"would be particularly for communication with existing packages" は "would be particularly common for communication with existing packages" とすべきです。[第13刷で修正済み]

34ページ: (第7刷のみ) 一部のコピーでは、印刷エラーのため、このページが完全に空白になっています。この問題が発生した場合は、Addison WesleyのJohn Fuller までご連絡ください。[第8刷で修正済み]

34ページ: 下から3行目で、"you only need a single class for each table" は "you only need a single object for each table" とすべきです。[第6刷で修正済み]

66ページ: 2行目で、"It may consists of a single request" は "It may consistsof a single request" とすべきです。[第6刷で修正済み]

67ページ: 2番目の段落で、"...arrange things so that the programs enters an isolated zone..." は "...arrange things so that the programsenters an isolated zone..." とすべきです。[第6刷で修正済み]

74ページ: 4番目の段落で、"You have to decide what risks you want take" は "You have to decide what risks you want to take" とすべきです。[第6刷で修正済み]

76ページ: 2番目の段落の3行目で、"...business transaction not leave the record..." は "...business transaction does not leave the record..." とすべきです。[第6刷で修正済み]

118ページ: Java実装の3番目の段落で、"Entity beans can't be re-entrant..." は "Entity beans shouldn't be re-entrant..." とすべきです。(エンティティBeanを再入可能にすることはできますが、そうすると危険な並行処理の問題にさらされることになります。)[第6刷で修正済み]

121ページ: クラス図において、クラスProductのメソッド "calculateRecognitions" は、123ページのコードと一致させるために、"calculateRevenueRecognitions" とすべきです。

156ページ: PersonGateway.update() および insert() のコード例では、メソッド getID() が使用されていますが、getID() がどこから来ているのかが明確ではありません。IDは、Row Data GatewaysのLayer Supertypeに格納されるはずです。[再版では修正できません]

192ページ: 最後のテキスト段落で、"Now we can now" は "Now we cannow" とすべきです。[第19刷で修正済み]

201ページ: 6番目の段落で、"These problem don't hit" は "These problems don't hit" とすべきです。

201ページ: 2番目の段落で、"a legal value field value" は "a legalvaluefield value" とすべきです。

206ページ: 最後のコード例で、見出し "class Domain Object" は "class DomainObject" (スペースなし) とすべきです。

207ページ: 最初のコード例で、class Domain Object は class DomainObject (スペースなし) とすべきです。[第10刷で修正済み]

211ページ: 3番目の段落で、"… a loading function than can be supplied …" は "… a loading function that can be supplied …" とすべきです。

238ページ: 4番目の段落、最後の文。"diff with the database is you're using" は "diff with the database if you're using" とすべきです。[第16刷で修正済み]

259ページ: 最初のテキスト段落の4行目で、"If it not I load…" は "If not, I load…" とすべきです。

279ページ: 最後の段落の始め "Rremember" は "Remember" とすべきです。[第16刷で修正済み]

291ページ: ページの最初のコード例は、MapperクラスのUpdateメソッドを示しています。

		
    public virtual void Update (DomainObject arg) {
			Save (arg);
		}
これは誤ったコードフラグメントです。代わりに、以下のようにすべきです。
		public virtual long Insert (DomainObject obj) {
			obj.Id = GetNextID();
			AddRow(obj);
			Save(obj);
			return obj.Id;
		}
自動コードインポートは素晴らしいですが、それでも正しいフラグメントをインポートする必要があります![第6刷で修正済み]

294ページ: 2番目の段落の終わりで、"Thus, youthusneed a key" が過剰です。[第16刷で修正済み]

326ページ: PersonRepositoryのコードサンプルで、次の行

public List dependentsOf(aPerson) {
は、以下のようにすべきです。
public List  dependentsOf(Person aPerson) {
(第5刷ではこれを修正しましたが、別のエラーを導入し、List を繰り返しました :-( [第6刷で修正済み]

351ページ: 3番目の段落の最後の行。"(providing your HTML is XHMTL...)" は "(providing your HTML is XHTML...)" とすべきです。当然ですね。[第9刷で修正済み]

357ページ: 3番目の箇条書きで、"(the number of balls he faced divided by the runs he scored)" は逆の順番で、"(the runs he scored divided by the number of balls he faced)" とすべきです。

371ページ: 例のセクションの最初の文。"This approach to a Two Step View uses a two-stage XLST transformation" は "This approach to a Two Step View uses a two-stage XSLT transformation" とすべきです。[第19刷で修正済み]

374ページ: 2番目のコード例で、album = Album.findNamed("1234"); の行を削除する必要があります。

380ページ: 最初の段落、最初の文。"the view with which display the response" は "the view with which to display the response" とすべきです。[第16刷で修正済み]

389ページ: 「仕組み」の下の最初の文。「Remote Facadeは、標準的なOOアプローチでの分散問題を解決します...」は、「Remote Facadeは、標準的なOOアプローチ分散問題を解決します...」とすべきです。

412ページ: 2番目の文に不要な単語があります。"I write methods to read and write an XML element to representthat classeach Data Transfer Object class." [第16刷で修正済み]

423ページ: 最後のコードブロック、最初の行 class class AbstractMapper...class class AbstractMapper... とすべきです。[第19刷で修正済み]

423ページ: ページの下部にあるコード例で、別のコード行を挿入する必要があります。 stmt.setLong(1,object.getId().longValue()); の行の後ろに、stmt.setInt(2, object.getVersion() + 1); の行を追加します。[第16刷で修正済み]

429ページ: 最後から2番目の行。"access to the lock table must by serialized" は "access to the lock table must be serialized" とすべきです。

432ページ: コードブロックで、class ExclusiveReadLockManagerDBImpl implements ExclusiveLockManager...class ExclusiveReadLockManagerDBImpl implements ExclusiveReadLockManager とすべきです。[第19刷で修正済み]

432ページ: create table のコード行で、ownerid bigintownerid varchar とすべきです。

436ページ: コードで、"class EditCustomerCommand implements Command..." は "class EditCustomerCommand extends BusinessTransactionCommand..." とすべきです。同様に、"class SaveCustomerCommand implements Command..." は "class SaveCustomerCommand extends BusinessTransactionCommand..." とすべきです。(私の気の利いた自動インポート機能における小さな、しかし厄介なギャップです。)[第9刷で修正済み]

485ページ: 最後のコード例で、Person martin = Registry.personFinder().find(1); の行は Person martin = f1.find(1); とすべきです。[第10刷で修正済み]

494ページ: 示されている配分アルゴリズムは、正の金額でのみ機能します。負の金額については、読者の演習として解決策を残します。[再版では修正できません]

497ページ: 2番目の段落の最後の文で、"you can accumulate charges against an occupant customer even you can't do much billing" は "you can accumulate charges against an occupant customer even if you can't do much billing" とすべきです。[第10刷で修正済み]

第4刷のエラー

ページタブ: 全体として、ページの端にあるタブはうまく機能しています。ただし、426ページ以降、すべてのタブが1つ上にずれてしまい、効果が残念ながら損なわれています。[第5刷で修正済み]

9ページ: 2番目の段落に、SwordfishとCamelが大文字になっていない箇所が2か所あります。[第5刷で修正済み]

17ページ: 2番目の段落の最後の文に、閉じ括弧がありません。[第5刷で修正済み]

21ページ: 5行目で、"there is no a human being" は "there is noahuman being" とすべきです。[第19刷で修正済み]

21ページ: 最上行:"would be particularly for communication with existing packages" は "would be particularly common for communication with existing packages" とすべきです。[第13刷で修正済み]

24ページ: 最後から2番目の段落で、"... try to keep all the code..." は "... try to keep all of a node's code..." とすべきです。[第5刷で修正済み]

33ページ: 最後の段落の最後から2番目の文で、language のスペルが間違っています。[第5刷で修正済み]

34ページ: (第7刷のみ) 一部のコピーでは、印刷エラーのため、このページが完全に空白になっています。この問題が発生した場合は、Addison WesleyのJohn Fuller までご連絡ください。[第8刷で修正済み]

34ページ: 下から3行目で、"you only need a single class for each table" は "you only need a single object for each table" とすべきです。[第6刷で修正済み]

44ページ: 3番目の段落の3番目の文で、"...linked object as a Embedded Value..." は "...linked object as an Embedded Value..." とすべきです。[第5刷で修正済み]

45ページ: 継承セクションの最初の段落の最後の行で、"hierarchy; Class Table Inheritance" はセミコロンの代わりにコロンを使用する必要があります。[第5刷で修正済み]

52ページ: 2番目の段落の最初の文で、"If you do things outside of a transaction..." は "If you do things outside of your transaction..." とすべきです。トランザクションデータベースにヒットするすべてのものは、何らかのトランザクションで発生しますが、時々、焦点を当てているメインのトランザクション外で実行したい場合があります。[第5刷で修正済み]

66ページ: 2行目で、"It may consists of a single request" は "It may consistsof a single request" とすべきです。[第6刷で修正済み]

67ページ: 2番目の段落で、"...arrange things so that the programs enters an isolated zone..." は "...arrange things so that the programsenters an isolated zone..." とすべきです。[第6刷で修正済み]

74ページ: 4番目の段落で、"You have to decide what risks you want take" は "You have to decide what risks you want to take" とすべきです。[第6刷で修正済み]

76ページ: 2番目の段落の3行目で、"...business transaction not leave the record..." は "...business transaction does not leave the record..." とすべきです。[第6刷で修正済み]

76ページ: 最初の段落の2番目の文で、"...commit phase of the system transaction, when the user hits Save within a system transaction." は "...commit phase of the system transaction, when the user hits Save, within a system transaction." (カンマの欠落) とすべきです。[第5刷で修正済み]

78ページ: 最後の段落で、"The main problem over process-per-session..." は "The main problem of process for request over process-per-session..." とすべきです。[第5刷で修正済み]

83ページ: セッション状態の4番目の段落で、"But it's not just changes that are a problem" は "But it's not just direct changes that are a problem" とすべきです。[第5刷で修正済み]

91ページ: 3行目で、"have to have to pay" は "have to pay" とすべきです。[第5刷で修正済み]

97ページ: データソース層へのダウンの最初の段落の始めで、"Once you've chose your domain layer..." は "Once you've chosen your domain layer..." とすべきです。[第5刷で修正済み]

101ページ: 2番目の段落の6行目で、"CMP" は "Container Managed Persistance (CMP)" とすべきです。[第5刷で修正済み]

102ページ: 上部の継続段落に、最後のピリオドがありません。[第5刷で修正済み]

106ページ: 5行目で、"I tend to look as it..." は "I tend to look at it..." とすべきです。[第5刷で修正済み]

117ページ: 最後の段落の2番目の文で、"some of the order behavior is only needed only for it" は "some of the order behavior is only neededonlyfor it" とすべきです。[第5刷で修正済み]

118ページ: Java実装の3番目の段落で、"Entity beans can't be re-entrant..." は "Entity beans shouldn't be re-entrant..." とすべきです。(エンティティBeanを再入可能にすることはできますが、そうすると危険な並行処理の問題にさらされることになります。)[第6刷で修正済み]

121ページ: クラス図において、クラスProductのメソッド "calculateRecognitions" は、123ページのコードと一致させるために、"calculateRevenueRecognitions" とすべきです。

130ページ: ページの中央の段落で、"updating the revenue recognition tables" は "updating the revenue recognition tables(不正確な複数形)とすべきです。[第5刷で修正済み]

156ページ: PersonGateway.update() および insert() のコード例では、メソッド getID() が使用されていますが、getID() がどこから来ているのかが明確ではありません。IDは、Row Data GatewaysのLayer Supertypeに格納されるはずです。[再版では修正できません]

158ページ: appendを何度も呼び出すコードブロックで、最後の呼び出しには最後の数文字が欠落しています。行は、次のようになるはずです。

result.append("\n");
[第5刷で修正済み]

192ページ: 最後のテキスト段落で、"Now we can now" は "Now we cannow" とすべきです。[第19刷で修正済み]

201ページ: 6番目の段落で、"These problem don't hit" は "These problems don't hit" とすべきです。

201ページ: 2番目の段落で、"a legal value field value" は "a legalvaluefield value" とすべきです。

206ページ: 最後のコード例で、見出し "class Domain Object" は "class DomainObject" (スペースなし) とすべきです。

207ページ: 最初のコード例で、class Domain Object は class DomainObject (スペースなし) とすべきです。[第10刷で修正済み]

211ページ: 3番目の段落で、"… a loading function than can be supplied …" は "… a loading function that can be supplied …" とすべきです。

238ページ: 4番目の段落、最後の文。"diff with the database is you're using" は "diff with the database if you're using" とすべきです。[第16刷で修正済み]

259ページ: 最初のテキスト段落の4行目で、"If it not I load…" は "If not, I load…" とすべきです。

279ページ: 最後の段落の始め "Rremember" は "Remember" とすべきです。[第16刷で修正済み]

291ページ: ページの最初のコード例は、MapperクラスのUpdateメソッドを示しています。

		
    public virtual void Update (DomainObject arg) {
			Save (arg);
		}
これは誤ったコードフラグメントです。代わりに、以下のようにすべきです。
		public virtual long Insert (DomainObject obj) {
			obj.Id = GetNextID();
			AddRow(obj);
			Save(obj);
			return obj.Id;
		}
自動コードインポートは素晴らしいですが、それでも正しいフラグメントをインポートする必要があります![第6刷で修正済み]

294ページ: 2番目の段落の終わりで、"Thus, youthusneed a key" が過剰です。[第16刷で修正済み]

326ページ: PersonRepositoryのコードサンプルで、次の行

public List dependentsOf(aPerson) {
は、以下のようにすべきです。
public List  dependentsOf(Person aPerson) {
(第5刷ではこれを修正しましたが、別のエラーを導入し、List を繰り返しました :-( [第6刷で修正済み]

326ページ: Repositoryのコードサンプルで、次の行

protected List matching(aCriteria) {
は、以下のようにすべきです。
protected List matching(Criteria aCriteria) {
残念ながら、私の貢献者は、私の自動コードインポートメカニズムを利用することができませんでした。[第5刷で修正済み]

351ページ: 3番目の段落の最後の行。"(providing your HTML is XHMTL...)" は "(providing your HTML is XHTML...)" とすべきです。当然ですね。[第9刷で修正済み]

357ページ: 3番目の箇条書きで、"(the number of balls he faced divided by the runs he scored)" は逆の順番で、"(the runs he scored divided by the number of balls he faced)" とすべきです。

371ページ: 例のセクションの最初の文。"This approach to a Two Step View uses a two-stage XLST transformation" は "This approach to a Two Step View uses a two-stage XSLT transformation" とすべきです。[第19刷で修正済み]

374ページ: 2番目のコード例で、album = Album.findNamed("1234"); の行を削除する必要があります。

380ページ: 最初の段落、最初の文。"the view with which display the response" は "the view with which to display the response" とすべきです。[第16刷で修正済み]

389ページ: 「仕組み」の下の最初の文。「Remote Facadeは、標準的なOOアプローチでの分散問題を解決します...」は、「Remote Facadeは、標準的なOOアプローチ分散問題を解決します...」とすべきです。

412ページ: 2番目の文に不要な単語があります。"I write methods to read and write an XML element to representthat classeach Data Transfer Object class." [第16刷で修正済み]

423ページ: 最後のコードブロック、最初の行 class class AbstractMapper...class class AbstractMapper... とすべきです。[第19刷で修正済み]

423ページ: ページの下部にあるコード例で、別のコード行を挿入する必要があります。 stmt.setLong(1,object.getId().longValue()); の行の後ろに、stmt.setInt(2, object.getVersion() + 1); の行を追加します。[第16刷で修正済み]

429ページ: 最後から2番目の行。"access to the lock table must by serialized" は "access to the lock table must be serialized" とすべきです。

432ページ: コードブロックで、class ExclusiveReadLockManagerDBImpl implements ExclusiveLockManager...class ExclusiveReadLockManagerDBImpl implements ExclusiveReadLockManager とすべきです。[第19刷で修正済み]

432ページ: create table のコード行で、ownerid bigintownerid varchar とすべきです。

436ページ: コードで、"class EditCustomerCommand implements Command..." は "class EditCustomerCommand extends BusinessTransactionCommand..." とすべきです。同様に、"class SaveCustomerCommand implements Command..." は "class SaveCustomerCommand extends BusinessTransactionCommand..." とすべきです。(私の気の利いた自動インポート機能における小さな、しかし厄介なギャップです。)[第9刷で修正済み]

485ページ: 最後のコード例で、Person martin = Registry.personFinder().find(1); の行は Person martin = f1.find(1); とすべきです。[第10刷で修正済み]

494ページ: 示されている配分アルゴリズムは、正の金額でのみ機能します。負の金額については、読者の演習として解決策を残します。[再版では修正できません]

497ページ: 2番目の段落の最後の文で、"you can accumulate charges against an occupant customer even you can't do much billing" は "you can accumulate charges against an occupant customer even if you can't do much billing" とすべきです。[第10刷で修正済み]

第3刷のエラー

ページタブ: 全体として、ページの端にあるタブはうまく機能しています。ただし、426ページ以降、すべてのタブが1つ上にずれてしまい、効果が残念ながら損なわれています。[第5刷で修正済み]

9ページ: 2番目の段落に、SwordfishとCamelが大文字になっていない箇所が2か所あります。[第5刷で修正済み]

17ページ: 2番目の段落の最後の文に、閉じ括弧がありません。[第5刷で修正済み]

21ページ: 5行目で、"there is no a human being" は "there is noahuman being" とすべきです。[第19刷で修正済み]

21ページ: 最上行:"would be particularly for communication with existing packages" は "would be particularly common for communication with existing packages" とすべきです。[第13刷で修正済み]

24ページ: 最後から2番目の段落で、"... try to keep all the code..." は "... try to keep all of a node's code..." とすべきです。[第5刷で修正済み]

33ページ: 2番目の段落の最初の文で、"One the biggest reasons" は "One of the biggest reasons" とすべきです。[第4刷で修正済み]

33ページ: 最後の段落の最後から2番目の文で、language のスペルが間違っています。[第5刷で修正済み]

33ページ: 最後の段落の最後の文「Database Administrations (DBAs) also like...」は、「Database Administrators (DBAs) also like...」とすべきです。(第4版で修正済)

34ページ: (第7刷のみ) 一部のコピーでは、印刷エラーのため、このページが完全に空白になっています。この問題が発生した場合は、Addison WesleyのJohn Fuller までご連絡ください。[第8刷で修正済み]

34ページ: 下から3行目で、"you only need a single class for each table" は "you only need a single object for each table" とすべきです。[第6刷で修正済み]

36ページ: 2番目の段落で「All of these forces push you to in'direction」は「All of these forces push you to indirection」(不要なアポストロフィを削除)とすべきです。(第4版で修正済)

44ページ: 3番目の段落の3番目の文で、"...linked object as a Embedded Value..." は "...linked object as an Embedded Value..." とすべきです。[第5刷で修正済み]

44ページ: 4段落目で「which can be either binary (BLOB) textual (CLOB」は「which can be either binary (BLOB) or textual (CLOB」とすべきです。(第4版で修正済)

45ページ: 継承セクションの最初の段落の最後の行で、"hierarchy; Class Table Inheritance" はセミコロンの代わりにコロンを使用する必要があります。[第5刷で修正済み]

45ページ: 継承の最初の段落の最後で「...relational system traditionally do poorly」は「...relational systems traditionally do poorly」とすべきです。(第4版で修正済)

45ページ: 継承の最初の段落の途中で「You can haveaone table...」は「You can have one table...」とすべきです。(第4版で修正済)

48ページ: 最後の段落の最後の文「You may want to pull similar data from both XML messages, CICS transactions, and relational tables.」は、「You may want to pull similar data from a combination of XML messages, CICS transactions, and relational tables.」とすべきです。(第4版で修正済)

49ページ: メタデータを使用するセクションの3段落目: <field name = customer ... は(引用符が不足しています)<field name = "customer" ... とすべきです。(第4版で修正済)

52ページ: 2番目の段落の最初の文で、"If you do things outside of a transaction..." は "If you do things outside of your transaction..." とすべきです。トランザクションデータベースにヒットするすべてのものは、何らかのトランザクションで発生しますが、時々、焦点を当てているメインのトランザクション外で実行したい場合があります。[第5刷で修正済み]

61ページ: 最初の段落の最後「depending some condition」は「depending on some condition」とすべきです。(第4版で修正済)

64ページ: 2番目の段落で「...easy to understand as well aswell asfamiliar.」は「...easy to understand as well as familiar.」とすべきです。(第4版で修正済)

66ページ: 2行目で、"It may consists of a single request" は "It may consistsof a single request" とすべきです。[第6刷で修正済み]

67ページ: 2番目の段落で、"...arrange things so that the programs enters an isolated zone..." は "...arrange things so that the programsenters an isolated zone..." とすべきです。[第6刷で修正済み]

68ページ: 最後の段落で「Martin edits the Customer class, which makes calls on the Order class」は「Martin edits the Customer class and adds some calls to the Order class」とすべきです。(第4版で修正済)

74ページ: ビジネスおよびシステムトランザクションの前の段落: 「... should look at each transaction ande decide...」は「... should look at each transaction and decide...」とすべきです。(第4版で修正済)

74ページ: 4番目の段落で、"You have to decide what risks you want take" は "You have to decide what risks you want to take" とすべきです。[第6刷で修正済み]

76ページ: 2番目の段落の3行目で、"...business transaction not leave the record..." は "...business transaction does not leave the record..." とすべきです。[第6刷で修正済み]

76ページ: 最初の段落の2番目の文で、"...commit phase of the system transaction, when the user hits Save within a system transaction." は "...commit phase of the system transaction, when the user hits Save, within a system transaction." (カンマの欠落) とすべきです。[第5刷で修正済み]

78ページ: 最後の段落で、"The main problem over process-per-session..." は "The main problem of process for request over process-per-session..." とすべきです。[第5刷で修正済み]

82ページ: 3番目の段落の最後の文「If we forgo...」は「If we forego...」とすべきです。(第4版で修正済)

83ページ: セッション状態の4番目の段落で、"But it's not just changes that are a problem" は "But it's not just direct changes that are a problem" とすべきです。[第5刷で修正済み]

86ページ: 3番目の段落の途中で「...as many features as quicklywithas you would with...」は「...as many features as quickly as you would with...」とすべきです。(第4版で修正済)

89ページ: 5番目の段落で「If you base your distribution strategy onaclasses...」は「If you base your distribution strategy on classes...」とすべきです。(第4版で修正済)

91ページ: 3行目で、"have to have to pay" は "have to pay" とすべきです。[第5刷で修正済み]

97ページ: データソース層へのダウンの最初の段落の始めで、"Once you've chose your domain layer..." は "Once you've chosen your domain layer..." とすべきです。[第5刷で修正済み]

98ページ: 見出し「Data Source Table Module (125)」は「Data Source for Table Module (125)」とすべきです。(第4版で修正済)

99ページ: 最後から2番目の段落に、最後のピリオドがありません。(第4版で修正済)

99ページ: 見出し「The Presentation Layer」は、より上位のヘッダーとしてフォーマットされるべきです(また、目次にも反映されるべきです)。(第4版で修正済)

100ページ: 「Some Technology Specific Advice」の最初の段落の途中で「... reason I've concentrating on...」は「... reason I'm concentrating on...」とすべきです。(第4版で修正済)

101ページ: 2番目の段落の6行目で、"CMP" は "Container Managed Persistance (CMP)" とすべきです。[第5刷で修正済み]

102ページ: 上部の継続段落に、最後のピリオドがありません。[第5刷で修正済み]

106ページ: 5行目で、"I tend to look as it..." は "I tend to look at it..." とすべきです。[第5刷で修正済み]

117ページ: 最後の段落の2番目の文で、"some of the order behavior is only needed only for it" は "some of the order behavior is only neededonlyfor it" とすべきです。[第5刷で修正済み]

118ページ: Java実装の3番目の段落で、"Entity beans can't be re-entrant..." は "Entity beans shouldn't be re-entrant..." とすべきです。(エンティティBeanを再入可能にすることはできますが、そうすると危険な並行処理の問題にさらされることになります。)[第6刷で修正済み]

119ページ: 「when to use it」の2番目の段落の最初の文は「One factor that comes into this is how comfortable the development team is with domain objects」とすべきです。(第4版で修正済)

121ページ: クラス図において、クラスProductのメソッド "calculateRecognitions" は、123ページのコードと一致させるために、"calculateRevenueRecognitions" とすべきです。

130ページ: ページの中央の段落で、"updating the revenue recognition tables" は "updating the revenue recognition tables(不正確な複数形)とすべきです。[第5刷で修正済み]

148ページ: 例の2番目の段落の2番目の文「In find it useful...」は「I find it useful...」とすべきです。(第4版で修正済)

150ページ: public DataRow this[long key] で始まるコードスニペットの途中で、PersonGatewayクラスにあると見出しを付けるべきです。(第4版で修正済)

151ページ: コードスニペットの見出しは class PersonGateway とすべきです。(第4版で修正済)

151ページ: long key = new PersonGatewayDS().GetNextID() となっているコード行は long key = GetNextID() とすべきです。(第4版で修正済)

156ページ: PersonGateway.update() および insert() のコード例では、メソッド getID() が使用されていますが、getID() がどこから来ているのかが明確ではありません。IDは、Row Data GatewaysのLayer Supertypeに格納されるはずです。[再版では修正できません]

158ページ: appendを何度も呼び出すコードブロックで、最後の呼び出しには最後の数文字が欠落しています。行は、次のようになるはずです。

result.append("\n");
[第5刷で修正済み]

169ページ: 2番目の段落で「For simpler applications, though, may not be worth...」は「For simpler applications, though, it may not be worth...」とすべきです。(第4版で修正済)

192ページ: 最後のテキスト段落で、"Now we can now" は "Now we cannow" とすべきです。[第19刷で修正済み]

201ページ: 6番目の段落で、"These problem don't hit" は "These problems don't hit" とすべきです。

201ページ: 2番目の段落で、"a legal value field value" は "a legalvaluefield value" とすべきです。

206ページ: 最後のコード例で、見出し "class Domain Object" は "class DomainObject" (スペースなし) とすべきです。

207ページ: 最初のコード例で、class Domain Object は class DomainObject (スペースなし) とすべきです。[第10刷で修正済み]

211ページ: 3番目の段落で、"… a loading function than can be supplied …" は "… a loading function that can be supplied …" とすべきです。

238ページ: 4番目の段落、最後の文。"diff with the database is you're using" は "diff with the database if you're using" とすべきです。[第16刷で修正済み]

239ページ: 5番目の段落で「... but if you're testing is good enough...」は「... but if your testing is good enough...」とすべきです。(第4版で修正済)

249ページ: 「When to use it」の後の最初の段落で「...since there are really noanyalternatives...」は「...since there are really no alternatives...」とすべきです。(第4版で修正済)

259ページ: 最初のテキスト段落の4行目で、"If it not I load…" は "If not, I load…" とすべきです。

279ページ: 最後の段落の始め "Rremember" は "Remember" とすべきです。[第16刷で修正済み]

291ページ: ページの最初のコード例は、MapperクラスのUpdateメソッドを示しています。

		
    public virtual void Update (DomainObject arg) {
			Save (arg);
		}
これは誤ったコードフラグメントです。代わりに、以下のようにすべきです。
		public virtual long Insert (DomainObject obj) {
			obj.Id = GetNextID();
			AddRow(obj);
			Save(obj);
			return obj.Id;
		}
自動コードインポートは素晴らしいですが、それでも正しいフラグメントをインポートする必要があります![第6刷で修正済み]

294ページ: 2番目の段落の終わりで、"Thus, youthusneed a key" が過剰です。[第16刷で修正済み]

326ページ: PersonRepositoryのコードサンプルで、次の行

public List dependentsOf(aPerson) {
は、以下のようにすべきです。
public List  dependentsOf(Person aPerson) {
(第5刷ではこれを修正しましたが、別のエラーを導入し、List を繰り返しました :-( [第6刷で修正済み]

326ページ: Repositoryのコードサンプルで、次の行

protected List matching(aCriteria) {
は、以下のようにすべきです。
protected List matching(Criteria aCriteria) {
残念ながら、私の貢献者は、私の自動コードインポートメカニズムを利用することができませんでした。[第5刷で修正済み]

351ページ: 3番目の段落の最後の行。"(providing your HTML is XHMTL...)" は "(providing your HTML is XHTML...)" とすべきです。当然ですね。[第9刷で修正済み]

354ページ: 最初の段落の最後の文「...involve program logic, which program logic everywhere...」は「...involve program logic, which like program logic everywhere...」とすべきです。(第4版で修正済)

354ページ: 2番目の段落で「...compiling the pageoron its first request...」は「...compiling the page on its first request...」とすべきです。(第4版で修正済)

357ページ: 3番目の箇条書きで、"(the number of balls he faced divided by the runs he scored)" は逆の順番で、"(the runs he scored divided by the number of balls he faced)" とすべきです。

362ページ: 2番目の段落で「for example , a .NET」は「for example , a .NET object」とすべきです。(第4版で修正済)

362ページ: 3番目の段落で「... the transform don't have to be a string...」は「... the transform doesn't have to be a string...」とすべきです。(第4版で修正済)

371ページ: 例のセクションの最初の文。"This approach to a Two Step View uses a two-stage XLST transformation" は "This approach to a Two Step View uses a two-stage XSLT transformation" とすべきです。[第19刷で修正済み]

374ページ: 2番目のコード例で、album = Album.findNamed("1234"); の行を削除する必要があります。

380ページ: 最初の段落、最初の文。"the view with which display the response" は "the view with which to display the response" とすべきです。[第16刷で修正済み]

389ページ: 「仕組み」の下の最初の文。「Remote Facadeは、標準的なOOアプローチでの分散問題を解決します...」は、「Remote Facadeは、標準的なOOアプローチ分散問題を解決します...」とすべきです。

391ページ: 最後の段落で「The main difference is that a service layer doesn't have to be remote and thus doesn't need to have only fine-grained methods.」は「The main difference is that a service layer doesn't have to be remote and thus doesn't need to have only coarse-grained methods.」とすべきです。(第4版で修正済)

402ページ: 最初の段落の2番目の文「Data Transfer Objectwillusually carries much more...」は「Data Transfer Object usually carries much more...」とすべきです。(第4版で修正済)

406ページ: 4番目の段落の始まり「Another alternative is to useasome form of ...」は「Another alternative is to use some form of ...」とすべきです。(第4版で修正済)

412ページ: 2番目の文に不要な単語があります。"I write methods to read and write an XML element to representthat classeach Data Transfer Object class." [第16刷で修正済み]

423ページ: 最後のコードブロック、最初の行 class class AbstractMapper...class class AbstractMapper... とすべきです。[第19刷で修正済み]

423ページ: ページの下部にあるコード例で、別のコード行を挿入する必要があります。 stmt.setLong(1,object.getId().longValue()); の行の後ろに、stmt.setInt(2, object.getVersion() + 1); の行を追加します。[第16刷で修正済み]

429ページ: 最後から2番目の行。"access to the lock table must by serialized" は "access to the lock table must be serialized" とすべきです。

432ページ: コードブロックで、class ExclusiveReadLockManagerDBImpl implements ExclusiveLockManager...class ExclusiveReadLockManagerDBImpl implements ExclusiveReadLockManager とすべきです。[第19刷で修正済み]

432ページ: create table のコード行で、ownerid bigintownerid varchar とすべきです。

436ページ: コードで、"class EditCustomerCommand implements Command..." は "class EditCustomerCommand extends BusinessTransactionCommand..." とすべきです。同様に、"class SaveCustomerCommand implements Command..." は "class SaveCustomerCommand extends BusinessTransactionCommand..." とすべきです。(私の気の利いた自動インポート機能における小さな、しかし厄介なギャップです。)[第9刷で修正済み]

457ページ: 最後の行「... reduce this risk; if not run, a simple session...」は、(コンマの誤配置)「... reduce this risk; if not, run a simple session...」とすべきです。(第4版で修正済)

470ページ: ページの中央にあるエラーメッセージ Null Parameter bassed for msg type...Null Parameter passed for msg type.. とすべきです。 もちろん、パラメーターを魚に取り付けたい場合を除きます。(第4版で修正済)

475ページ: 「When to Use It」の下の段落で、「I Often...」で始まる文は「I often...」(大文字の間違い)とすべきです。(第4版で修正済)

485ページ: 最後のコード例で、Person martin = Registry.personFinder().find(1); の行は Person martin = f1.find(1); とすべきです。[第10刷で修正済み]

494ページ: 示されている配分アルゴリズムは、正の金額でのみ機能します。負の金額については、読者の演習として解決策を残します。[再版では修正できません]

496ページ: 2番目の段落の2番目の文「Often the right thing is same...」は「Often the right thing is the same...」とすべきです。(第4版で修正済)

497ページ: 2番目の段落の最後の文で、"you can accumulate charges against an occupant customer even you can't do much billing" は "you can accumulate charges against an occupant customer even if you can't do much billing" とすべきです。[第10刷で修正済み]

502ページ: 最初の段落の最初の文「...nextId() select the next available number...」は「...nextId() selects the next available number...」とすべきです。(第4版で修正済)

502ページ: 最後の段落の3番目の文「... to find the file rather then looking...」は「... to find the file rather than looking...」とすべきです。(第4版で修正済)

505ページ: 3番目の段落で「... a lot of our application functionality dependents on...」は「... a lot of our application functionality depends on...」とすべきです。(第4版で修正済)

505ページ: 最後の段落の最初の文「...a tax service that deployed...」は「...a tax service that's deployed...」とすべきです。(第4版で修正済)

505ページ: 5番目の段落の途中で、Gateway (466 に対する2番目の参照に、閉じ括弧がありません。(第4版で修正済)

510ページ: 「When to Use It」の最初の段落で「...Record Set, and a compelling reason...」は「...Record Set, and that's a compelling reason...」とすべきです。(第4版で修正済)

1〜3版の誤り

ページタブ: 全体として、ページの端にあるタブはうまく機能しています。ただし、426ページ以降、すべてのタブが1つ上にずれてしまい、効果が残念ながら損なわれています。[第5刷で修正済み]

裏表紙の内側:「データベースとのインタラクション方法は?」の下に、行を追加してください「Table Module (125) -> Table Data Gateway (144)を使用しています。(第3版で修正済)

9ページ: 2番目の段落に、SwordfishとCamelが大文字になっていない箇所が2か所あります。[第5刷で修正済み]

17ページ: 2番目の段落の最後の文に、閉じ括弧がありません。[第5刷で修正済み]

21ページ: 5行目で、"there is no a human being" は "there is noahuman being" とすべきです。[第19刷で修正済み]

21ページ: 最上行:"would be particularly for communication with existing packages" は "would be particularly common for communication with existing packages" とすべきです。[第13刷で修正済み]

24ページ: 最後から2番目の段落で、"... try to keep all the code..." は "... try to keep all of a node's code..." とすべきです。[第5刷で修正済み]

33ページ: 2番目の段落の最初の文で、"One the biggest reasons" は "One of the biggest reasons" とすべきです。[第4刷で修正済み]

33ページ: 最後の段落の最後から2番目の文で、language のスペルが間違っています。[第5刷で修正済み]

33ページ: 最後の段落の最後の文「Database Administrations (DBAs) also like...」は、「Database Administrators (DBAs) also like...」とすべきです。(第4版で修正済)

34ページ: (第7刷のみ) 一部のコピーでは、印刷エラーのため、このページが完全に空白になっています。この問題が発生した場合は、Addison WesleyのJohn Fuller までご連絡ください。[第8刷で修正済み]

34ページ: 下から3行目で、"you only need a single class for each table" は "you only need a single object for each table" とすべきです。[第6刷で修正済み]

36ページ: 2番目の段落で「All of these forces push you to in'direction」は「All of these forces push you to indirection」(不要なアポストロフィを削除)とすべきです。(第4版で修正済)

44ページ: 3番目の段落の3番目の文で、"...linked object as a Embedded Value..." は "...linked object as an Embedded Value..." とすべきです。[第5刷で修正済み]

44ページ: 4段落目で「which can be either binary (BLOB) textual (CLOB」は「which can be either binary (BLOB) or textual (CLOB」とすべきです。(第4版で修正済)

45ページ: 継承セクションの最初の段落の最後の行で、"hierarchy; Class Table Inheritance" はセミコロンの代わりにコロンを使用する必要があります。[第5刷で修正済み]

45ページ: 継承の最初の段落の最後で「...relational system traditionally do poorly」は「...relational systems traditionally do poorly」とすべきです。(第4版で修正済)

45ページ: 継承の最初の段落の途中で「You can haveaone table...」は「You can have one table...」とすべきです。(第4版で修正済)

48ページ: 最後の段落の最後の文「You may want to pull similar data from both XML messages, CICS transactions, and relational tables.」は、「You may want to pull similar data from a combination of XML messages, CICS transactions, and relational tables.」とすべきです。(第4版で修正済)

49ページ: メタデータを使用するセクションの3段落目: <field name = customer ... は(引用符が不足しています)<field name = "customer" ... とすべきです。(第4版で修正済)

52ページ: 2番目の段落の最初の文で、"If you do things outside of a transaction..." は "If you do things outside of your transaction..." とすべきです。トランザクションデータベースにヒットするすべてのものは、何らかのトランザクションで発生しますが、時々、焦点を当てているメインのトランザクション外で実行したい場合があります。[第5刷で修正済み]

61ページ: 最初の段落の最後「depending some condition」は「depending on some condition」とすべきです。(第4版で修正済)

64ページ: 2番目の段落で「...easy to understand as well aswell asfamiliar.」は「...easy to understand as well as familiar.」とすべきです。(第4版で修正済)

66ページ: 2行目で、"It may consists of a single request" は "It may consistsof a single request" とすべきです。[第6刷で修正済み]

67ページ: 2番目の段落で、"...arrange things so that the programs enters an isolated zone..." は "...arrange things so that the programsenters an isolated zone..." とすべきです。[第6刷で修正済み]

68ページ: 最後の段落で「Martin edits the Customer class, which makes calls on the Order class」は「Martin edits the Customer class and adds some calls to the Order class」とすべきです。(第4版で修正済)

71ページ: 3番目の段落で「each transaction must complete on and all-or-nothing basis」は「each transaction must complete on an all-or-nothing basis」とすべきです。(第3版で修正済)

74ページ: ビジネスおよびシステムトランザクションの前の段落: 「... should look at each transaction ande decide...」は「... should look at each transaction and decide...」とすべきです。(第4版で修正済)

74ページ: 4番目の段落で、"You have to decide what risks you want take" は "You have to decide what risks you want to take" とすべきです。[第6刷で修正済み]

75ページ: 2番目の段落で「This is what we call a business transaction, and that displays the same ACID properties as a system transaction seems a reasonable expectation」は「This is what we call a business transaction, and that it displays the same ACID properties as a system transaction seems a reasonable expectation」とすべきです。(第3版で修正済)

76ページ: 2番目の段落の3行目で、"...business transaction not leave the record..." は "...business transaction does not leave the record..." とすべきです。[第6刷で修正済み]

76ページ: 最初の段落の2番目の文で、"...commit phase of the system transaction, when the user hits Save within a system transaction." は "...commit phase of the system transaction, when the user hits Save, within a system transaction." (カンマの欠落) とすべきです。[第5刷で修正済み]

78ページ: 最後の段落で、"The main problem over process-per-session..." は "The main problem of process for request over process-per-session..." とすべきです。[第5刷で修正済み]

82ページ: 3番目の段落の最後の文「If we forgo...」は「If we forego...」とすべきです。(第4版で修正済)

83ページ: セッション状態の4番目の段落で、"But it's not just changes that are a problem" は "But it's not just direct changes that are a problem" とすべきです。[第5刷で修正済み]

86ページ: 3番目の段落の途中で「...as many features as quicklywithas you would with...」は「...as many features as quickly as you would with...」とすべきです。(第4版で修正済)

88ページ: 図7.1の図のキャプションは「異なるノードに異なるコンポーネントを配置することによるアプリケーションの分散(推奨されません!)」とすべきです。(第3版で修正済)

89ページ: 5番目の段落で「If you base your distribution strategy onaclasses...」は「If you base your distribution strategy on classes...」とすべきです。(第4版で修正済)

91ページ: 3行目で、"have to have to pay" は "have to pay" とすべきです。[第5刷で修正済み]

91ページ: 「Working with the Distribution Boundary」セクションの2番目の段落で「The coarse-grained objects don't really do anything but so they act as a facade for the fine-grained objects」は「The coarse-grained objects don't really do anything but delegate so they act as a facade for the fine-grained objects」とすべきです。(第3版で修正済)

96ページ: 4番目の段落で「Also. my experiences」は「Also, my experiences...」(不要なピリオド)とすべきです。(第3版で修正済)

97ページ: データソース層へのダウンの最初の段落の始めで、"Once you've chose your domain layer..." は "Once you've chosen your domain layer..." とすべきです。[第5刷で修正済み]

98ページ: 見出し「Data Source Table Module (125)」は「Data Source for Table Module (125)」とすべきです。(第4版で修正済)

99ページ: 最後から2番目の段落に、最後のピリオドがありません。(第4版で修正済)

99ページ: 見出し「The Presentation Layer」は、より上位のヘッダーとしてフォーマットされるべきです(また、目次にも反映されるべきです)。(第4版で修正済)

100ページ: 「Some Technology Specific Advice」の最初の段落の途中で「... reason I've concentrating on...」は「... reason I'm concentrating on...」とすべきです。(第4版で修正済)

101ページ: 2番目の段落の6行目で、"CMP" は "Container Managed Persistance (CMP)" とすべきです。[第5刷で修正済み]

101ページ: 最初の段落の最後の文「If you're not sure about EJB...」は削除すべきです。(意味不明であり、後に続く段落から取り残されたものと考えられます。)(第3版で修正済)

102ページ: 上部の継続段落に、最後のピリオドがありません。[第5刷で修正済み]

106ページ: 5行目で、"I tend to look as it..." は "I tend to look at it..." とすべきです。[第5刷で修正済み]

106ページ: 2番目の段落で「...Nilsson uses stored procedures extensivel,」は「...Nilsson uses stored procedures extensively,」とすべきです。(第3版で修正済)

113ページ: GatewayクラスのfindRecognitionsFor()のコード例に冗長性があります。 コードの2行目:stmt = db.prepareStatement(findRecognitionsStatement); は、前の行と同じことをしているので削除できます。(第3版で修正済)

117ページ: 最後の段落の2番目の文で、"some of the order behavior is only needed only for it" は "some of the order behavior is only neededonlyfor it" とすべきです。[第5刷で修正済み]

118ページ: Java実装の3番目の段落で、"Entity beans can't be re-entrant..." は "Entity beans shouldn't be re-entrant..." とすべきです。(エンティティBeanを再入可能にすることはできますが、そうすると危険な並行処理の問題にさらされることになります。)[第6刷で修正済み]

119ページ: 「when to use it」の2番目の段落の最初の文は「One factor that comes into this is how comfortable the development team is with domain objects」とすべきです。(第4版で修正済)

121ページ: クラス図において、クラスProductのメソッド "calculateRecognitions" は、123ページのコードと一致させるために、"calculateRevenueRecognitions" とすべきです。

122ページ: 最初の段落で、「The strategy pattern [Gang of Four] is a well-known OO pattern that allows you combine a group...」は「The strategy pattern [Gang of Four] is a well-known OO pattern that allows you to combine a group...」とすべきです。(第3版で修正済)

130ページ: ページの中央の段落で、"updating the revenue recognition tables" は "updating the revenue recognition tables(不正確な複数形)とすべきです。[第5刷で修正済み]

139ページ: ApplicationServiceのUMLクラス図で、メソッドリスト「+getIntegationGateway() : IntegrationGateway」は「+getIntegrationGateway() : IntegrationGateway」とすべきです。(第3版で修正済)

141ページ: ApplicationServiceBeanImplのUMLクラス図で、メソッドリスト「+getIntegationService() : IntegrationService」は、「+getIntegrationService() : IntegrationService」とすべきです。(第3版で修正済)

145ページ: 2番目の段落で、「bidirectional dependencies the domain objects」は「bidirectional dependencies between the domain objects」とすべきです。(第3版で修正済)

148ページ: 例の2番目の段落の2番目の文「In find it useful...」は「I find it useful...」とすべきです。(第4版で修正済)

149ページ: コンストラクター (protected DataSetGateway() と protected DataSetGateway(DataSetHolder holder)) は protected DataGateway() と protected DataGateway(DataSetHolder holder) とすべきです。(第3版で修正済)

150ページ: public DataRow this[long key] で始まるコードスニペットの途中で、PersonGatewayクラスにあると見出しを付けるべきです。(第4版で修正済)

151ページ: コードスニペットの見出しは class PersonGateway とすべきです。(第4版で修正済)

151ページ: long key = new PersonGatewayDS().GetNextID() となっているコード行は long key = GetNextID() とすべきです。(第4版で修正済)

156ページ: PersonGateway.update() および insert() のコード例では、メソッド getID() が使用されていますが、getID() がどこから来ているのかが明確ではありません。IDは、Row Data GatewaysのLayer Supertypeに格納されるはずです。[再版では修正できません]

158ページ: appendを何度も呼び出すコードブロックで、最後の呼び出しには最後の数文字が欠落しています。行は、次のようになるはずです。

result.append("\n");
[第5刷で修正済み]

169ページ: 2番目の段落で「For simpler applications, though, may not be worth...」は「For simpler applications, though, it may not be worth...」とすべきです。(第4版で修正済)

189ページ: 2番目の文で、「more than one thread can't get access a Unit of Work」は「more than one thread can't get access to a Unit of Work」とすべきです。(第3版で修正済)

189ページ: 「.NET Implementation」の下の段落で、「a data set, which is a series of objects arranged like tables, rows, database and columns.」は「a data set, which is a series of objects arranged like database tables, rows, databaseand columns.」とすべきです。(第3版で修正済)

192ページ: 最後のテキスト段落で、"Now we can now" は "Now we cannow" とすべきです。[第19刷で修正済み]

201ページ: 6番目の段落で、"These problem don't hit" は "These problems don't hit" とすべきです。

201ページ: 2番目の段落で、"a legal value field value" は "a legalvaluefield value" とすべきです。

206ページ: 最後のコード例で、見出し "class Domain Object" は "class DomainObject" (スペースなし) とすべきです。

207ページ: 最初のコード例で、class Domain Object は class DomainObject (スペースなし) とすべきです。[第10刷で修正済み]

211ページ: 3番目の段落で、"… a loading function than can be supplied …" は "… a loading function that can be supplied …" とすべきです。

238ページ: 4番目の段落、最後の文。"diff with the database is you're using" は "diff with the database if you're using" とすべきです。[第16刷で修正済み]

239ページ: 5番目の段落で「... but if you're testing is good enough...」は「... but if your testing is good enough...」とすべきです。(第4版で修正済)

249ページ: 「When to use it」の後の最初の段落で「...since there are really noanyalternatives...」は「...since there are really no alternatives...」とすべきです。(第4版で修正済)

259ページ: 最初のテキスト段落の4行目で、"If it not I load…" は "If not, I load…" とすべきです。

270ページ:最初の段落の「refers to tit」は「refers to it」と読むべきです。フロイト的スリップを見つけたと考える人は、英国にはシジュウカラと呼ばれる小鳥の仲間がいることに注意してください。[第3刷で修正済み]

279ページ: 最後の段落の始め "Rremember" は "Remember" とすべきです。[第16刷で修正済み]

291ページ: ページの最初のコード例は、MapperクラスのUpdateメソッドを示しています。

		
    public virtual void Update (DomainObject arg) {
			Save (arg);
		}
これは誤ったコードフラグメントです。代わりに、以下のようにすべきです。
		public virtual long Insert (DomainObject obj) {
			obj.Id = GetNextID();
			AddRow(obj);
			Save(obj);
			return obj.Id;
		}
自動コードインポートは素晴らしいですが、それでも正しいフラグメントをインポートする必要があります![第6刷で修正済み]

294ページ: 2番目の段落の終わりで、"Thus, youthusneed a key" が過剰です。[第16刷で修正済み]

326ページ: PersonRepositoryのコードサンプルで、次の行

public List dependentsOf(aPerson) {
は、以下のようにすべきです。
public List  dependentsOf(Person aPerson) {
(第5刷ではこれを修正しましたが、別のエラーを導入し、List を繰り返しました :-( [第6刷で修正済み]

326ページ: Repositoryのコードサンプルで、次の行

protected List matching(aCriteria) {
は、以下のようにすべきです。
protected List matching(Criteria aCriteria) {
残念ながら、私の貢献者は、私の自動コードインポートメカニズムを利用することができませんでした。[第5刷で修正済み]

331ページ:3番目の段落の「Fundamentally presentation and view are about different concerns」は「Fundamentally presentation and model are about different concerns.」と読むべきです。このパターンでは、プレゼンテーションはMVCのビューと(入力)コントローラの組み合わせであると考えています。[第3刷で修正済み]

331ページ:3番目の段落の「and they people」は「and they」と読むべきです。[第3刷で修正済み]

351ページ: 3番目の段落の最後の行。"(providing your HTML is XHMTL...)" は "(providing your HTML is XHTML...)" とすべきです。当然ですね。[第9刷で修正済み]

354ページ: 最初の段落の最後の文「...involve program logic, which program logic everywhere...」は「...involve program logic, which like program logic everywhere...」とすべきです。(第4版で修正済)

354ページ: 2番目の段落で「...compiling the pageoron its first request...」は「...compiling the page on its first request...」とすべきです。(第4版で修正済)

357ページ: 3番目の箇条書きで、"(the number of balls he faced divided by the runs he scored)" は逆の順番で、"(the runs he scored divided by the number of balls he faced)" とすべきです。

362ページ: 2番目の段落で「for example , a .NET」は「for example , a .NET object」とすべきです。(第4版で修正済)

362ページ: 3番目の段落で「... the transform don't have to be a string...」は「... the transform doesn't have to be a string...」とすべきです。(第4版で修正済)

371ページ: 例のセクションの最初の文。"This approach to a Two Step View uses a two-stage XLST transformation" は "This approach to a Two Step View uses a two-stage XSLT transformation" とすべきです。[第19刷で修正済み]

374ページ: 2番目のコード例で、album = Album.findNamed("1234"); の行を削除する必要があります。

380ページ: 最初の段落、最初の文。"the view with which display the response" は "the view with which to display the response" とすべきです。[第16刷で修正済み]

389ページ: 「仕組み」の下の最初の文。「Remote Facadeは、標準的なOOアプローチでの分散問題を解決します...」は、「Remote Facadeは、標準的なOOアプローチ分散問題を解決します...」とすべきです。

391ページ: 最後の段落で「The main difference is that a service layer doesn't have to be remote and thus doesn't need to have only fine-grained methods.」は「The main difference is that a service layer doesn't have to be remote and thus doesn't need to have only coarse-grained methods.」とすべきです。(第4版で修正済)

402ページ: 最初の段落の2番目の文「Data Transfer Objectwillusually carries much more...」は「Data Transfer Object usually carries much more...」とすべきです。(第4版で修正済)

402ページ:3番目の段落の「you usually don't want the domain object classes on the server」は「you usually don't want the domain object classes on the client」と読むべきです。[第3刷で修正済み]

406ページ: 4番目の段落の始まり「Another alternative is to useasome form of ...」は「Another alternative is to use some form of ...」とすべきです。(第4版で修正済)

412ページ: 2番目の文に不要な単語があります。"I write methods to read and write an XML element to representthat classeach Data Transfer Object class." [第16刷で修正済み]

423ページ: 最後のコードブロック、最初の行 class class AbstractMapper...class class AbstractMapper... とすべきです。[第19刷で修正済み]

423ページ: ページの下部にあるコード例で、別のコード行を挿入する必要があります。 stmt.setLong(1,object.getId().longValue()); の行の後ろに、stmt.setInt(2, object.getVersion() + 1); の行を追加します。[第16刷で修正済み]

429ページ: 最後から2番目の行。"access to the lock table must by serialized" は "access to the lock table must be serialized" とすべきです。

432ページ: コードブロックで、class ExclusiveReadLockManagerDBImpl implements ExclusiveLockManager...class ExclusiveReadLockManagerDBImpl implements ExclusiveReadLockManager とすべきです。[第19刷で修正済み]

432ページ: create table のコード行で、ownerid bigintownerid varchar とすべきです。

436ページ: コードで、"class EditCustomerCommand implements Command..." は "class EditCustomerCommand extends BusinessTransactionCommand..." とすべきです。同様に、"class SaveCustomerCommand implements Command..." は "class SaveCustomerCommand extends BusinessTransactionCommand..." とすべきです。(私の気の利いた自動インポート機能における小さな、しかし厄介なギャップです。)[第9刷で修正済み]

457ページ: 最後の行「... reduce this risk; if not run, a simple session...」は、(コンマの誤配置)「... reduce this risk; if not, run a simple session...」とすべきです。(第4版で修正済)

470ページ: ページの中央にあるエラーメッセージ Null Parameter bassed for msg type...Null Parameter passed for msg type.. とすべきです。 もちろん、パラメーターを魚に取り付けたい場合を除きます。(第4版で修正済)

475ページ: 「When to Use It」の下の段落で、「I Often...」で始まる文は「I often...」(大文字の間違い)とすべきです。(第4版で修正済)

485ページ: 最後のコード例で、Person martin = Registry.personFinder().find(1); の行は Person martin = f1.find(1); とすべきです。[第10刷で修正済み]

494ページ: 示されている配分アルゴリズムは、正の金額でのみ機能します。負の金額については、読者の演習として解決策を残します。[再版では修正できません]

496ページ: 2番目の段落の2番目の文「Often the right thing is same...」は「Often the right thing is the same...」とすべきです。(第4版で修正済)

497ページ: 2番目の段落の最後の文で、"you can accumulate charges against an occupant customer even you can't do much billing" は "you can accumulate charges against an occupant customer even if you can't do much billing" とすべきです。[第10刷で修正済み]

502ページ: 最初の段落の最初の文「...nextId() select the next available number...」は「...nextId() selects the next available number...」とすべきです。(第4版で修正済)

502ページ

コード例にエラーがあります。クラスプラグインファクトリの静的コードは、以下のように読む必要があります

 
static { 
  try { 
    String propsFile = System.getProperty("plugins"); 
    props.load(new FileInputStream(propsFile)); 
  } catch (Exception ex) { 
    throw new ExceptionInInitializerError(ex); 
  } 
} 

これは私にとって非常に驚くべきエラーです。このようなバグを避けるための自動コードインポートシステムを誇りに思っていたからです。さらに悪いことに、これがどのように発生したのかがわかりません。AWに出荷した最終的なFrameMakerファイルでさえ、正しいコードが含まれていました。永遠に私たちを悩ませる謎もあります。

[第3刷で修正済み]

502ページ: 最後の段落の3番目の文「... to find the file rather then looking...」は「... to find the file rather than looking...」とすべきです。(第4版で修正済)

503ページ:中ほどにある、コードサンプル見出しのclass IdGeneratorinterface IdGeneratorと読むべきです。[第3刷で修正済み]

505ページ: 3番目の段落で「... a lot of our application functionality dependents on...」は「... a lot of our application functionality depends on...」とすべきです。(第4版で修正済)

505ページ: 最後の段落の最初の文「...a tax service that deployed...」は「...a tax service that's deployed...」とすべきです。(第4版で修正済)

505ページ: 5番目の段落の途中で、Gateway (466 に対する2番目の参照に、閉じ括弧がありません。(第4版で修正済)

510ページ: 「When to Use It」の最初の段落で「...Record Set, and a compelling reason...」は「...Record Set, and that's a compelling reason...」とすべきです。(第4版で修正済)

512ページ:[Brown and Whitenack]のURLはhttp://members.aol.com/kgb1001001/Chasms.htmである必要があります。書籍ではChasmsを大文字にすることができませんでした。[第3刷で修正済み]


=Duncan Sung W. Kim、Kent Wang、Pradyumn Sharma、Timothy Halloran、Kaspar Thommen、Roger Stasko、Einar Jónsson、Ray Ye、Neil Lowden、David van Leerdam、山野裕二、Anatoly Varakin、Chris Bernard、Mark Wilden、Eduard Penzhorn、Gregor Hohpe、Craig Demyanovich、Thierry Bernard、Scott Hodson、Geoff Catlin、Danny Trieu、Ray Ye、Ted Schrader、Héctor Domínguez、Steve Berczuk、George Hicks、Yousif Masoud、Dylan Nissley、Emanuel Reisingerに、これらのエラーを発見して教えてくれたことに感謝します。