0% found this document useful (0 votes)
25 views

Spring Boot Persistence Best Practices: Optimize Java Persistence Performance in Spring Boot Applications 1st Edition Anghel Leonard pdf download

The document is about best practices for optimizing Java Persistence performance in Spring Boot applications, authored by Anghel Leonard. It covers various topics including associations, entities, and fetching strategies to enhance persistence efficiency. The book serves as a comprehensive guide for developers looking to improve their Spring Boot applications' data handling capabilities.

Uploaded by

oppitzhencks
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views

Spring Boot Persistence Best Practices: Optimize Java Persistence Performance in Spring Boot Applications 1st Edition Anghel Leonard pdf download

The document is about best practices for optimizing Java Persistence performance in Spring Boot applications, authored by Anghel Leonard. It covers various topics including associations, entities, and fetching strategies to enhance persistence efficiency. The book serves as a comprehensive guide for developers looking to improve their Spring Boot applications' data handling capabilities.

Uploaded by

oppitzhencks
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 46

Spring Boot Persistence Best Practices: Optimize

Java Persistence Performance in Spring Boot


Applications 1st Edition Anghel Leonard pdf
download
https://ebookmeta.com/product/spring-boot-persistence-best-
practices-optimize-java-persistence-performance-in-spring-boot-
applications-1st-edition-anghel-leonard/

Download more ebook from https://ebookmeta.com


We believe these products will be a great fit for you. Click
the link to download now, or visit ebookmeta.com
to discover even more!

Beginning Spring Data: Data Access and Persistence for


Spring Framework 6 and Boot 3 1st Edition Andres Sacco

https://ebookmeta.com/product/beginning-spring-data-data-access-
and-persistence-for-spring-framework-6-and-boot-3-1st-edition-
andres-sacco/

Pro Spring Security: Securing Spring Framework 6 and


Boot 3–based Java Applications, Third Edition
Massimo Nardone

https://ebookmeta.com/product/pro-spring-security-securing-
spring-framework-6-and-boot-3-based-java-applications-third-
edition-massimo-nardone/

Java Persistence with Spring Data and Hibernate (MEAP


V04) C■t■lin Tudose

https://ebookmeta.com/product/java-persistence-with-spring-data-
and-hibernate-meap-v04-catalin-tudose/

Murder in the Locked Library Book Retreat Mystery 4


Ellery Adams

https://ebookmeta.com/product/murder-in-the-locked-library-book-
retreat-mystery-4-ellery-adams/
The Duke s Unwilling Bride Seven Omegas for Seven
Alphas Book 1 1st Edition Vivian Murdoch

https://ebookmeta.com/product/the-duke-s-unwilling-bride-seven-
omegas-for-seven-alphas-book-1-1st-edition-vivian-murdoch-2/

When Kids Ask Hard Questions Faith Filled Responses for


Tough Topics Bromleigh Mccleneghan

https://ebookmeta.com/product/when-kids-ask-hard-questions-faith-
filled-responses-for-tough-topics-bromleigh-mccleneghan/

Refugee Crises and Third World Economies Policies and


Perspectives 1st Edition Sourav Kumar Das

https://ebookmeta.com/product/refugee-crises-and-third-world-
economies-policies-and-perspectives-1st-edition-sourav-kumar-das/

Daddy Wants Me An Extremely Taboo Collection 1st


Edition Chiara

https://ebookmeta.com/product/daddy-wants-me-an-extremely-taboo-
collection-1st-edition-chiara/

The Surviving Object Psychoanalytic clinical essays on


psychic survival of the object 1st Edition Jan Abram

https://ebookmeta.com/product/the-surviving-object-
psychoanalytic-clinical-essays-on-psychic-survival-of-the-
object-1st-edition-jan-abram-2/
Zero Trust Networks 2nd Edition Razi Rais Christina
Morillo Evan Gilman Doug Barth

https://ebookmeta.com/product/zero-trust-networks-2nd-edition-
razi-rais-christina-morillo-evan-gilman-doug-barth/
Spring Boot
Persistence
Best Practices
Optimize Java Persistence Performance
in Spring Boot Applications

Anghel Leonard

www.allitebooks.com
Spring Boot Persistence
Best Practices
Optimize Java Persistence
Performance in Spring Boot
Applications

Anghel Leonard

www.allitebooks.com
Spring Boot Persistence Best Practices: Optimize Java Persistence Performance in
Spring Boot Applications

Anghel Leonard
Banesti, Romania

ISBN-13 (pbk): 978-1-4842-5625-1 ISBN-13 (electronic): 978-1-4842-5626-8


https://doi.org/10.1007/978-1-4842-5626-8

Copyright © 2020 by Anghel Leonard


This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the
material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation,
broadcasting, reproduction on microfilms or in any other physical way, and transmission or information
storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now
known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with
every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an
editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the
trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not
identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to
proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of publication,
neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or
omissions that may be made. The publisher makes no warranty, express or implied, with respect to the
material contained herein.
Managing Director, Apress Media LLC: Welmoed Spahr
Acquisitions Editor: Steve Anglin
Development Editor: Matthew Moodie
Coordinating Editor: Mark Powers
Cover designed by eStudioCalamar
Cover image designed by Freepik (www.freepik.com)
Distributed to the book trade worldwide by Apress Media, LLC, 1 New York Plaza, New York, NY 10004,
U.S.A. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail [email protected], or visit
www.springeronline.com. Apress Media, LLC is a California LLC and the sole member (owner) is Springer
Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation.
For information on translations, please e-mail [email protected]; for reprint, paperback, or audio rights,
please email [email protected].
Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and
licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales
web page at http://www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in this book is available to
readers on GitHub via the book’s product page, located at www.apress.com/9781484256251. For more
detailed information, please visit http://www.apress.com/source-code.
Printed on acid-free paper

www.allitebooks.com
This book is dedicated to my dear wife, Octavia.

www.allitebooks.com
Table of Contents
About the Author��������������������������������������������������������������������������������������������������xxiii

About the Technical Reviewer�������������������������������������������������������������������������������xxv


Introduction���������������������������������������������������������������������������������������������������������xxvii

Chapter 1: Associations�������������������������������������������������������������������������������������������� 1
Item 1: How to Effectively Shape the @OneToMany Association�������������������������������������������������� 1
Always Cascade from Parent-Side to Child-Side�������������������������������������������������������������������� 2
Don’t Forget to Set mappedBy on the Parent-Side������������������������������������������������������������������ 2
Set orphanRemoval on the Parent-Side���������������������������������������������������������������������������������� 3
Keep Both Sides of the Association in Sync���������������������������������������������������������������������������� 3
Override equals( ) and hashCode( )����������������������������������������������������������������������������������������� 4
Use Lazy Fetching on Both Sides of the Association��������������������������������������������������������������� 5
Pay Attention to How toString( ) Is Overridden������������������������������������������������������������������������ 5
Use @JoinColumn to Specify the Join Column Name������������������������������������������������������������� 5
Author and Book Samples������������������������������������������������������������������������������������������������������� 6
Item 2: Why You Should Avoid the Unidirectional @OneToMany Association�������������������������������� 8
Regular Unidirectional @OneToMany������������������������������������������������������������������������������������ 10
Using @OrderColumn������������������������������������������������������������������������������������������������������������ 15
Using @JoinColumn�������������������������������������������������������������������������������������������������������������� 19
Item 3: How Efficient Is the Unidirectional @ManyToOne����������������������������������������������������������� 22
Adding a New Book to a Certain Author�������������������������������������������������������������������������������� 24
Fetching All Books of an Author��������������������������������������������������������������������������������������������� 26
Paging the Books of an Author���������������������������������������������������������������������������������������������� 27
Fetching All Books of an Author and Adding a New Book������������������������������������������������������ 28
Fetching all Books of an Author and Deleting a Book������������������������������������������������������������ 29

www.allitebooks.com
Table of Contents

Item 4: How to Effectively Shape the @ManyToMany Association���������������������������������������������� 30


Choose the Owner of the Relationship���������������������������������������������������������������������������������� 31
Always Use Set not List��������������������������������������������������������������������������������������������������������� 31
Keep Both Sides of the Association in Sync�������������������������������������������������������������������������� 31
Avoid CascadeType.ALL and CascadeType.REMOVE�������������������������������������������������������������� 31
Setting Up the Join Table������������������������������������������������������������������������������������������������������� 32
Using Lazy Fetching on Both Sides of the Association���������������������������������������������������������� 32
Override equals( ) and hashCode( )��������������������������������������������������������������������������������������� 32
Pay Attention to How toString( ) Is Overridden���������������������������������������������������������������������� 32
Author and Book Samples����������������������������������������������������������������������������������������������������� 32
Item 5: Why Set Is Better than List in @ManyToMany����������������������������������������������������������������� 36
Using List������������������������������������������������������������������������������������������������������������������������������� 36
Using Set������������������������������������������������������������������������������������������������������������������������������� 38
Item 6: Why and When to Avoid Removing Child Entities with CascadeType.Remove and
orphanRemoval=true������������������������������������������������������������������������������������������������������������������ 41
Deleting Authors that Are Already Loaded in the Persistence Context���������������������������������� 45
One Author Has Already Been Loaded in the Persistence Context���������������������������������������� 45
More Authors Have Been Loaded in the Persistence Context������������������������������������������������ 46
One Author and His Associated Books Have Been Loaded in the Persistence Context��������� 48
Deleting When the Author and Books that Should Be Deleted Are Not Loaded in the
Persistence Context��������������������������������������������������������������������������������������������������������������� 50
Item 7: How to Fetch Associations via JPA Entity Graphs����������������������������������������������������������� 52
Defining an Entity Graph via @NamedEntityGraph���������������������������������������������������������������� 53
Ad Hoc Entity Graphs������������������������������������������������������������������������������������������������������������� 59
Defining an Entity Graph via EntityManager�������������������������������������������������������������������������� 61
Item 8: How to Fetch Associations via Entity Sub-­Graphs���������������������������������������������������������� 62
Using @NamedEntityGraph and @NamedSubgraph������������������������������������������������������������� 64
Using the Dot Notation (.) in Ad Hoc Entity Graphs���������������������������������������������������������������� 67
Defining an Entity Sub-Graph via EntityManager������������������������������������������������������������������ 70

vi
Table of Contents

Item 9: How to Handle Entity Graphs and Basic Attributes��������������������������������������������������������� 70


Item 10: How to Filter Associations via a Hibernate-­Specific @Where Annotation��������������������� 75
Item 11: How to Optimize Unidirectional/Bidirectional @OneToOne via @MapsId��������������������� 79
Regular Unidirectional @OneToOne��������������������������������������������������������������������������������������� 79
Regular Bidirectional @OneToOne����������������������������������������������������������������������������������������� 82
@MapsId to the Rescue of @OneToOne�������������������������������������������������������������������������������� 84
Item 12: How to Validate that Only One Association Is Non-Null������������������������������������������������� 87
Testing Time�������������������������������������������������������������������������������������������������������������������������� 89

Chapter 2: Entities�������������������������������������������������������������������������������������������������� 91
Item 13: How to Adopt a Fluent API Style in Entities������������������������������������������������������������������� 91
Fluent-Style via Entity Setters����������������������������������������������������������������������������������������������� 92
Fluent-Style via Additional Methods�������������������������������������������������������������������������������������� 95
Item 14: How to Populate a Child-Side Parent Association via a Hibernate-Specific Proxy�������� 98
Using findById( )�������������������������������������������������������������������������������������������������������������������� 99
Using getOne( )�������������������������������������������������������������������������������������������������������������������� 100
Item 15: How to Use Java 8 Optional in Persistence Layer������������������������������������������������������� 101
Optional in Entities�������������������������������������������������������������������������������������������������������������� 101
Optional in Repositories������������������������������������������������������������������������������������������������������ 103
Item 16: How to Write Immutable Entities��������������������������������������������������������������������������������� 104
Item 17: How to Clone Entities�������������������������������������������������������������������������������������������������� 106
Cloning the Parent and Associating the Books�������������������������������������������������������������������� 107
Cloning the Parent and the Books��������������������������������������������������������������������������������������� 110
Joining These Cases������������������������������������������������������������������������������������������������������������ 113
Item 18: Why and How to Activate Dirty Tracking���������������������������������������������������������������������� 114
Item 19: How to Map a Boolean to a Yes/No����������������������������������������������������������������������������� 117
Item 20: The Best Way to Publish Domain Events from Aggregate Roots��������������������������������� 119
Synchronous Execution������������������������������������������������������������������������������������������������������� 123
Asynchronous Execution����������������������������������������������������������������������������������������������������� 129

vii
Table of Contents

Chapter 3: Fetching���������������������������������������������������������������������������������������������� 135


Item 21: How to Use Direct Fetching����������������������������������������������������������������������������������������� 135
Direct Fetching via Spring Data������������������������������������������������������������������������������������������� 136
Fetching via EntityManager������������������������������������������������������������������������������������������������� 137
Fetching via Hibernate-Specific Session����������������������������������������������������������������������������� 137
Direct Fetching and Session-Level Repeatable-Reads�������������������������������������������������������� 139
Direct Fetching Multiple Entities by ID�������������������������������������������������������������������������������� 146
Item 22: Why Use Read-Only Entities Whenever You Plan to Propagate Changes
to the Database in a Future Persistence Context���������������������������������������������������������������������� 148
Load Author in Read-Write Mode���������������������������������������������������������������������������������������� 148
Load Author in Read-Only Mode������������������������������������������������������������������������������������������ 149
Update the Author���������������������������������������������������������������������������������������������������������������� 150
Item 23: How to Lazy Load the Entity Attributes via Hibernate Bytecode Enhancement���������� 151
Enabling Lazy Loading of Attributes������������������������������������������������������������������������������������ 152
Attribute Lazy Loading and N+1������������������������������������������������������������������������������������������ 155
Attribute Lazy Loading and Lazy Initialization Exceptions��������������������������������������������������� 157
Item 24: How to Lazy Load the Entity Attributes via Subentities����������������������������������������������� 163
Item 25: How to Fetch DTO via Spring Projections�������������������������������������������������������������������� 167
JPA Named (Native) Queries Can Be Combined with Spring Projections���������������������������� 172
Class-Based Projections������������������������������������������������������������������������������������������������������ 176
How to Reuse a Spring Projection��������������������������������������������������������������������������������������� 177
How to Use Dynamic Spring Projections����������������������������������������������������������������������������� 179
Item 26: How to Add an Entity in a Spring Projection���������������������������������������������������������������� 181
Materialized Association������������������������������������������������������������������������������������������������������ 181
Not Materialized Association����������������������������������������������������������������������������������������������� 182
Item 27: How to Enrich Spring Projections with Virtual Properties
That Are/Aren’t Part of Entities������������������������������������������������������������������������������������������������� 184
Item 28: How to Efficiently Fetch Spring Projection Including *-to-One Associations�������������� 186
Using Nested Closed Projections����������������������������������������������������������������������������������������� 187
Using a Simple Closed Projection���������������������������������������������������������������������������������������� 190
Using a Simple Open Projection������������������������������������������������������������������������������������������ 192
viii
Table of Contents

Item 29: Why to Pay Attention to Spring Projections that Include Associated Collections�������� 195
Using Nested Spring Closed Projection������������������������������������������������������������������������������� 195
Using a Simple Closed Projection���������������������������������������������������������������������������������������� 206
Transform List<Object[ ]> in DTO���������������������������������������������������������������������������������������� 208
Item 30: How to Fetch All Entity Attributes via Spring Projection���������������������������������������������� 213
Using the Query Builder Mechanism����������������������������������������������������������������������������������� 215
Using JPQL and @Query������������������������������������������������������������������������������������������������������ 215
Using JPQL with an Explicit List of Columns and @Query��������������������������������������������������� 217
Using a Native Query and @Query�������������������������������������������������������������������������������������� 218
Item 31: How to Fetch DTO via Constructor Expression������������������������������������������������������������ 219
Item 32: Why You Should Avoid Fetching Entities in DTO via the Constructor Expression�������� 223
Item 33: How to Fetch DTO via a JPA Tuple������������������������������������������������������������������������������� 226
Item 34: How to Fetch DTO via @SqlResultSetMapping and @NamedNativeQuery����������������� 229
Scalar Mappings������������������������������������������������������������������������������������������������������������������ 230
Constructor Mapping����������������������������������������������������������������������������������������������������������� 231
Entity Mapping��������������������������������������������������������������������������������������������������������������������� 233
Item 35: How to Fetch DTO via ResultTransformer������������������������������������������������������������������� 233
Item 36: How to Fetch DTO via a custom ResultTransformer���������������������������������������������������� 238
Item 37: How to Map an Entity to a Query via @Subselect������������������������������������������������������� 243
Item 38: How to Fetch DTO via Blaze-Persistence Entity Views������������������������������������������������ 247
Item 39: How to Effectively Fetch Parent and Association in One SELECT�������������������������������� 251
Item 40: How to Decide Between JOIN and JOIN FETCH����������������������������������������������������������� 256
Fetch All Authors and Their Books that Are More Expensive than the Given Price�������������� 257
How JOIN FETCH Will Act����������������������������������������������������������������������������������������������������� 258
How JOIN Will Act���������������������������������������������������������������������������������������������������������������� 259
Fetch All Books and their Authors��������������������������������������������������������������������������������������� 261
How JOIN FETCH Will Act����������������������������������������������������������������������������������������������������� 262
How JOIN Will Act���������������������������������������������������������������������������������������������������������������� 263
Item 41: How to Fetch All Left Entities�������������������������������������������������������������������������������������� 265
Item 42: How to Fetch DTO from Unrelated Entities������������������������������������������������������������������ 267

ix
Table of Contents

Item 43: How to Write JOIN Statements������������������������������������������������������������������������������������ 268


INNER JOIN�������������������������������������������������������������������������������������������������������������������������� 270
LEFT JOIN���������������������������������������������������������������������������������������������������������������������������� 271
RIGHT JOIN�������������������������������������������������������������������������������������������������������������������������� 272
CROSS JOIN������������������������������������������������������������������������������������������������������������������������� 273
FULL JOIN���������������������������������������������������������������������������������������������������������������������������� 275
Simulate a FULL JOIN in MySQL������������������������������������������������������������������������������������������ 276
Item 44: How to Paginate JOINs������������������������������������������������������������������������������������������������ 277
The DENSE_RANK( ) Window Function to the Rescue��������������������������������������������������������� 283
Item 45: How to Stream the Result Set (in MySQL) and How to Use the Streamable Utility����� 287
Stream the Result Set (in MySQL)��������������������������������������������������������������������������������������� 287
Do Not Confuse Stream with the Streamable Utility������������������������������������������������������������ 288
Don’t Fetch More Columns than Needed Just to Drop a Part of them via map( )���������������� 290
Don’t Fetch More Rows than Needed Just to Drop a Part of Them via filter( )�������������������� 290
Pay Attention to Concatenating Streamable via and( )�������������������������������������������������������� 291
How to Return Custom Streamable Wrapper Types������������������������������������������������������������� 293

Chapter 4: Batching���������������������������������������������������������������������������������������������� 297


Item 46: How to Batch Inserts in Spring Boot Style������������������������������������������������������������������ 297
Enabling Batching and Preparing the JDBC URL����������������������������������������������������������������� 297
Preparing the Entities for Batching Inserts�������������������������������������������������������������������������� 300
Identify and Avoid the Built-In saveAll(Iterable<S> entities) Drawbacks���������������������������� 302
Custom Implementation Is the Way to Go���������������������������������������������������������������������������� 303
Testing Time������������������������������������������������������������������������������������������������������������������������ 307
Item 47: How to Optimize Batch Inserts of Parent-­Child Relationships������������������������������������ 309
Ordering Inserts������������������������������������������������������������������������������������������������������������������� 310
Item 48: How to Control Batch Size at the Session Level��������������������������������������������������������� 312
Item 49: How to Fork-Join JDBC Batching�������������������������������������������������������������������������������� 313
Fork-Join Batching�������������������������������������������������������������������������������������������������������������� 314
Item 50: Batching Entities via CompletableFuture�������������������������������������������������������������������� 318

x
Table of Contents

Item 51: How to Efficiently Batch Updates�������������������������������������������������������������������������������� 322


Versioned Entities���������������������������������������������������������������������������������������������������������������� 323
Batch Updates of Parent-Child Relationships���������������������������������������������������������������������� 323
Bulk Updates����������������������������������������������������������������������������������������������������������������������� 324
Item 52: How to Efficiently Batch Deletes (No Associations)���������������������������������������������������� 326
Delete via the Built-In deleteAllInBatch( ) Method��������������������������������������������������������������� 328
Delete via the Built-In deleteInBatch(Iterable<T> entities) ������������������������������������������������ 329
Delete via the Built-In deleteAll( ) Methods������������������������������������������������������������������������� 331
Delete via the Built-In delete(T entity) Method�������������������������������������������������������������������� 333
Item 53: How to Efficiently Batch Deletes (with Associations)�������������������������������������������������� 334
Relying on orphanRemoval = true��������������������������������������������������������������������������������������� 335
Delete via the Built-In deleteInBatch(Iterable<T> entities) ������������������������������������������������ 337
Delete via the Built-In deleteAll(Iterable<? extends T> entities) and
delete(T entity) Methods������������������������������������������������������������������������������������������������������ 338
Relying on SQL, ON DELETE CASCADE��������������������������������������������������������������������������������� 342
Delete via the Built-In deleteAllInBatch( ) Method��������������������������������������������������������������� 343
Delete via the Built-In deleteInBatch(Iterable<T> entities) ������������������������������������������������ 343
Delete via the Built-In deleteAll(Iterable<? extends T> entities) and
delete(T entity) Methods������������������������������������������������������������������������������������������������������ 344
Item 54: How to Fetch Association in Batches�������������������������������������������������������������������������� 346
@BatchSize at the Collection-Level������������������������������������������������������������������������������������ 346
@BatchSize at Class/Entity-Level��������������������������������������������������������������������������������������� 349
Item 55: Why to Avoid PostgreSQL (BIG)SERIAL in Batching Inserts via Hibernate������������������� 352
Optimize the Identifier-Fetching Process���������������������������������������������������������������������������� 353
Optimize Batching via reWriteBatchedInserts��������������������������������������������������������������������� 354

Chapter 5: Collections������������������������������������������������������������������������������������������ 357


Item 56: How to JOIN FETCH an @ElementCollection Collection���������������������������������������������� 357
Item 57: How to DTO an @ElementCollection��������������������������������������������������������������������������� 359
Item 58: Why and When to Use @OrderColumn with @ElementCollection������������������������������� 362
Optimizing @ElementCollection via @OrderColumn����������������������������������������������������������� 366

xi
Table of Contents

Item 59: How to Merge Entity Collections��������������������������������������������������������������������������������� 373


Merging the Detached Collection���������������������������������������������������������������������������������������� 377
Testing Time������������������������������������������������������������������������������������������������������������������������ 380

Chapter 6: Connections and Transactions������������������������������������������������������������ 383


Item 60: How to Delay Connection Acquisition Until It’s Really Needed������������������������������������ 383
Item 61: How @Transactional(readOnly=true) Really Works����������������������������������������������������� 386
Item 62: Why Spring Ignores @Transactional��������������������������������������������������������������������������� 396
Item 63: How to Set and Check that Transaction Timeout and Rollback at Expiration Work as
Expected����������������������������������������������������������������������������������������������������������������������������������� 400
Setting Transaction and Query Timeouts����������������������������������������������������������������������������� 403
Check That a Transaction Was Rolled Back������������������������������������������������������������������������� 404
Item 64: Why and How to Use @Transactional in a Repository Interface���������������������������������� 404
Does Query-methods listed in an interface repository run by default
in a transactional-context?�������������������������������������������������������������������������������������������������� 405
Okay, So All I Have to Do Is Add @Transactional at the Service-Method Level, Right?������� 410
But, Generally Speaking, Is this Approach Always Enough?������������������������������������������������ 414
I Know! Let’s Move @Transactional in the Repository Interface!���������������������������������������� 416
But What If I Want to Call More Query-Methods in the Service-­Method?
Do I Lose ACID?������������������������������������������������������������������������������������������������������������������� 417
So, If I Delay the Connection Acquisition then I Can Avoid @Transactional in
Repository Interfaces?�������������������������������������������������������������������������������������������������������� 422
Three Simple and Common Scenarios�������������������������������������������������������������������������������� 426

Chapter 7: Identifiers�������������������������������������������������������������������������������������������� 433


Item 65: Why to Avoid the Hibernate 5 AUTO Generator Type in MySQL������������������������������������ 433
Item 66: How to Optimize the Generation of Sequence Identifiers via the
hi/lo Algorithm��������������������������������������������������������������������������������������������������������������������������� 435
Dealing with External Systems�������������������������������������������������������������������������������������������� 440
Item 67: How to Optimize the Generation of Sequence Identifiers via Pooled (-lo)
Algorithms��������������������������������������������������������������������������������������������������������������������������������� 441
The Pooled Algorithm���������������������������������������������������������������������������������������������������������� 442
The Pooled-Lo Algorithm����������������������������������������������������������������������������������������������������� 445

xii
Table of Contents

Item 68: How to Correctly Override equals( ) and hashCode( )������������������������������������������������� 448
Building the Unit Test����������������������������������������������������������������������������������������������������������� 448
Best Approaches for Overriding equals( ) and hashCode( )������������������������������������������������� 451
Approaches for Overriding equals( ) and hashCode( ) that Must Be Avoided���������������������� 458
Item 69: How to Use Hibernate-Specific @NaturalId in Spring Style���������������������������������������� 463
Testing Time������������������������������������������������������������������������������������������������������������������������ 467
Compound Natural ID���������������������������������������������������������������������������������������������������������� 468
Item 70: How to Use Hibernate-Specific @NaturalId and Skip the Entity
Identifier Retrieval��������������������������������������������������������������������������������������������������������������������� 471
Using @NaturalIdCache Solely�������������������������������������������������������������������������������������������� 472
Using @NaturalIdCache and @Cache���������������������������������������������������������������������������������� 474
Item 71: How to Define an Association that References a @NaturalId Column������������������������ 477
Testing Time������������������������������������������������������������������������������������������������������������������������ 478
Item 72: How to Obtain Auto-Generated Keys��������������������������������������������������������������������������� 479
Retrieve Auto-Generated Keys via getId( )��������������������������������������������������������������������������� 480
Retrieve Auto-Generated Keys via JdbcTemplate���������������������������������������������������������������� 480
Retrieve Auto-Generated Keys via SimpleJdbcInsert���������������������������������������������������������� 482
Item 73: How to Generate Custom Sequence IDs��������������������������������������������������������������������� 482
Item 74: How to Efficiently Implement a Composite Primary Key��������������������������������������������� 484
Composite key via @Embeddable and @EmbeddedId�������������������������������������������������������� 486
Composite key via @IdClass����������������������������������������������������������������������������������������������� 497
How About the Universally Unique Identifier (UUID)?���������������������������������������������������������� 498
Generate UUID via GenerationType.AUTO����������������������������������������������������������������������������� 499
Manually Assigned UUID������������������������������������������������������������������������������������������������������ 501
Hibernate-Specific uuid2����������������������������������������������������������������������������������������������������� 502
Item 75: How to Define a Relationship in a Composite Key������������������������������������������������������ 503
Testing Time������������������������������������������������������������������������������������������������������������������������ 508
Persist a Publisher��������������������������������������������������������������������������������������������������������������� 508
Persist Two Authors������������������������������������������������������������������������������������������������������������� 509
Find an Author by Name������������������������������������������������������������������������������������������������������ 512

xiii
Table of Contents

Remove a Book of an Author����������������������������������������������������������������������������������������������� 513


Remove an Author��������������������������������������������������������������������������������������������������������������� 514
Item 76: How to Use an Entity for the Junction Table��������������������������������������������������������������� 516
Define a Composite Primary Key for the Junction Table����������������������������������������������������� 516
Define an Entity for the Junction Table�������������������������������������������������������������������������������� 518
Plug In the Author and Book������������������������������������������������������������������������������������������������ 520

Chapter 8: Calculating Properties������������������������������������������������������������������������� 523


Item 77: How to Map Calculated Non-Persistent Properties����������������������������������������������������� 523
JPA Quick Approach������������������������������������������������������������������������������������������������������������ 523
JPA @PostLoad������������������������������������������������������������������������������������������������������������������� 524
Hibernate-specific @Formula��������������������������������������������������������������������������������������������� 525
Item 78: How to Map Calculated Persistent Properties via @Generated���������������������������������� 526
Hibernate-Specific @Generated������������������������������������������������������������������������������������������ 527
Item 79: How to Use SQL Functions with Multiple Parameters in JPQL Queries���������������������� 531
Function in the SELECT Part������������������������������������������������������������������������������������������������ 532
Function in the WHERE Part������������������������������������������������������������������������������������������������� 534
Item 80: How to Map @ManyToOne Relationship to an SQL Query Via @JoinFormula������������� 536

Chapter 9: Monitoring������������������������������������������������������������������������������������������� 541


Item 81: Why and How to Count and Assert SQL Statements��������������������������������������������������� 541
Item 82: How to Log the Binding and Extracted Parameters of a Prepared Statement������������ 546
TRACE���������������������������������������������������������������������������������������������������������������������������������� 546
Log4j 2��������������������������������������������������������������������������������������������������������������������������������� 548
MySQL and profileSQL=true������������������������������������������������������������������������������������������������ 549
Item 83: How to Log Query Details�������������������������������������������������������������������������������������������� 549
Via DataSource-Proxy���������������������������������������������������������������������������������������������������������� 549
Via log4jdbc������������������������������������������������������������������������������������������������������������������������� 550
Via P6spy����������������������������������������������������������������������������������������������������������������������������� 551
Item 84: How to Log Slow Queries with Threshold������������������������������������������������������������������� 552
Item 85: Log Transactions and Query-Methods Details������������������������������������������������������������� 554
Log Transactions Details������������������������������������������������������������������������������������������������������ 554
xiv
Table of Contents

Take Control via Transaction Callbacks������������������������������������������������������������������������������� 554


Log Query-Methods Execution Time������������������������������������������������������������������������������������ 557

Chapter 10: Configuring DataSource and Connection Pool����������������������������������� 561


Item 86: How to Customize HikariCP Settings�������������������������������������������������������������������������� 561
Tuning HikariCP Parameters via application.properties������������������������������������������������������ 562
Tuning HikariCP Parameters via application.properties and DataSourceBuilder����������������� 563
Tuning HikariCP Parameters via DataSourceBuilder����������������������������������������������������������� 564
Tuning Other Connection Pools�������������������������������������������������������������������������������������������� 565
Item 87: How to Configure Two Data Sources with Two Connection Pools������������������������������� 566
Testing Time������������������������������������������������������������������������������������������������������������������������ 572

Chapter 11: Audit�������������������������������������������������������������������������������������������������� 575


Item 88: How to Track the Creation and Modification Times and Entity Users�������������������������� 575
Rely on Spring Data JPA Auditing���������������������������������������������������������������������������������������� 576
Relying on Hibernate Support���������������������������������������������������������������������������������������������� 579
The createdBy and lastModifiedBy Fields��������������������������������������������������������������������������� 580
Testing Time������������������������������������������������������������������������������������������������������������������������ 583
Item 89: How to Enable Hibernate-Specific Envers Auditing���������������������������������������������������� 584
Auditing Entities������������������������������������������������������������������������������������������������������������������ 585
Schema Generation������������������������������������������������������������������������������������������������������������� 586
Querying the Entity Snapshots�������������������������������������������������������������������������������������������� 588
Item 90: How to Inspect the Persistence Context��������������������������������������������������������������������� 591
Item 91: How to Extract Table Metadata����������������������������������������������������������������������������������� 596

Chapter 12: Schemas�������������������������������������������������������������������������������������������� 601


Item 92: How to Set Up Flyway in Spring Boot�������������������������������������������������������������������������� 601
Quickest Flyway Setup (MySQL and PostgreSQL)��������������������������������������������������������������� 601
Instruct Flyway to Create the Database������������������������������������������������������������������������������� 602
Set Up Flyway via @FlywayDataSource������������������������������������������������������������������������������ 605
Flyway and Multiple Schemas��������������������������������������������������������������������������������������������� 606
Item 93: How to Generate Two Databases via schema-*.sql and Match Entities to Them�������� 606

xv
Another Random Scribd Document
with Unrelated Content
Kallis Jeesus, sua lemmin,
Kun sun rakkaus täytti mun.
Siksi myöskin syömmein lämmin,
Koko ruumis olkoon sun.
Käytä parhaat aikomuksein,
Muisti, tahto kaikki vaan.
Herra hengestäsi anna
Vuotaa tyhjään astiaan.

Turhaan mailma luokseen kutsuu.


Turhaa onpi riemu maan.
Jos se tahtoo luotas' riistää
Multaa onpi kulta vaan.
Rakkain hän on, veljein parhain.
Onnen lähde verraton.
Tuskan alla lohdutuksein,
Parhain auttajain hän on.

Herran vaippaan pyhään tarttuu


Ilman pelkoo käten' nyt,
Voimaa silloin runsaast' varttuu,
Elo on uusi alkanut.
Herra kääntyy, luopi katseen:
"Terveyteen sai voimaa ken?"
Turhaan etsin puoltolauseen.
Vastausta löydä en.

Kuinka suuri onkaan rakkaus,


Jok' on sielun täyttänyt.
Sun mä oon, oi kallis Jeesus.
Synnin orjuus päättynyt.
Uuden luomuksen on alku.
Katson aamuaurinkoon.
Sielussain on pääsiäis-aamu.
Kristus mun, mä hänen oon.

Maa ja taivas kaikkinensa


Oot nyt mulle Herra vaan.
Jeesus, Jeesus, kallis Jeesus
Kaiken siinä nimess' saan.
KAHDEKSAS LUKU.

ISRAELIN ENNALLEEN ASETTAMINEN.

Israelin ennalleenasettaminen Palestiinassa on tapaus, joka on


odotettavissa tänä elonkorjuu-aikana. — Tämän
ennalleenasettamisen tapa ja laajuus sekä luokka, jota luulemme
sen koskevan. — Sen alkamisen vuosiluku ja todistuksia sen
todellisesta jatkumisesta siitä asti. — Syy, miksi tuhatvuotiskauden
siunaukset, jotka ovat aiotut koko ihmiskunnalle, ensiksi kohtaavat ja
herättävät eloon juutalaisen. — Juutalaisten toiveitten elpyminen. —
Johtavain juutalaisten ja pakanallisten kirjailijain huomioita. —
Näiden yhtäpitäväisyys ennustuksen kanssa. — Israelin sokeus
Kristukseen nähden alkaa jo poistua. — Liikkeen laajeneminen ja
voima. — Jumala on auttava heitä.

"Sinä päivänä minä rakennan Davidin kaatuneen majan, ja


korjaan sen halkeamat ja sen rauniot kohennan, ja rakennan
sen niinkuin se entisinä päivinä oli. Ja minä palautan vangitun
kansani Israelin, ja he rakentavat autiot kaupungit ja asuvat
niissä, ja istuttavat viinimäkiä ja juovat niitten viiniä, ja
tekevät puutarhoja ja syövät niitten hedelmän. Ja minä
istutan heidät heidän omaan maahansa, eikä heitä enää
revitä pois heidän maastansa, jonka minä heille annoin, sanoo
Herra sinun Jumalasi." — Aamos 9: 11, 14, 15.

Ikivanhain muinaisjäännösten joukossa, joka on säilynyt aina


meidän päiviimme asti, ei ole ainoatakaan, joka herättäisi niin suurta
mielenkiintoa kuin juutalainen kansa. Muinaistietojen etsijät ovat
väsymättä kysyneet neuvoa jokaiselta elottomalta esineeltä, joka on
voinut antaa hitusenkaan historiallista tahi luonnontieteellistä
valaistusta. Muistopatsaitten, alttarien, hautojen, julkisten ja
yksityisten asuntojen jäännösten, maalausten, kuvanveistosten,
hieroglyfien ja kuolleitten kielten, kaikkien niiden puoleen on
käännytty; ja ovat toiset vieläpä kärsivällisestikin koettaneet tutkia
mikä on se oleellinen totuus joka mahdollisesti on ollut pohjana
monille mielikuvitusta uhkuville perimätiedoille, saduille, runoille
j.n.e., joita ajan virta on kantanut läpi vuosisatojen, oppiaksensa
tuntemaan kaiken mikä on mahdollista tietää ihmisen alkuperästä,
historiasta ja lopullisesta tarkotuksesta. Mutta mieltäkiinnittävin
jäännös ja se, jonka historia on selvimmin ymmärrettävä ja luettava,
on juutalainen kansa. Siinä meillä on arvaamattoman kallisarvoinen
muistopatsas muinaisuudesta, johon on kirjotettu selvästi luettavin
kirjaimin koko ihmiskunnan alkuperä, edistyminen ja lopullinen
tarkotus — elävä ja järjellä varustettu todistus inhimillisten asiain
ihmeellisen aikomuksen asteettaisesta toimeenpanosta, joka
täydellisesti pitää yhtä heidän Jumalan henkeyttämien profettainsa ja
ennustajainsa ennustusten kanssa.

Kansana ovat he koko historiansa aikana sekä oman uskontonsa


että kansallisluonteensa kokoonpanon puolesta, vieläpä
ulkomuotonsa, että tapojensakin puolesta aivan omituinen ja muista
erotettu kansa. Heidän kansalliset luonnepiirteensä, sellaisina kuin
ne esiintyivät monia vuosisatoja taaksepäin, ovat vielä
huomattavissa, aina heidän mieltymyksestään Egyptin puna- ja
valkosipuliin asti sekä myös heidän itsepäisyydestään. Kansana oli
heillä todella paljon etuja kaikin puolin siitä, että heille oli uskottu
mitä Jumala on puhunut, mikä heidän keskuudessaan kehitti
runoilijoita, valtiomiehiä, lainoppineita ja viisaustieteilijöitä ja kohotti
heidät askel askeleelta orjakansasta kansaksi, joka oli etevä ja
toisten kansain kunnioittama ja herätti maailman ihmettelyn ja
ihailun — niinkuin oli Salomonin, heidän valtansa loistokauden
aikana. — Room. 3: 1, 2; 1 Kun. 4: 30—34; 10: 1—29.

Että Israelin ennalleenasettaminen Palestiinaan on niitä tapauksia,


jotka ovat odotettavissa tänä Herran päivänä, siitä olemme varmasti
vakuutetut ylläolevan profetan lausunnon kautta. Huomaa,
erityisesti, ettei ennustusta saata mitenkään tulkita
vertauskuvallisesti. Heitä ei ole määrätty mitään taivaallista Kaanaata
varten, vaan maallista Kaanaata varten. Heidät istutetaan "omaan
maahansa", maahan, jonka Jumala sanoo antaneensa heille,
maahan, jonka hän on luvannut Aabrahamille, sanoen: "Nosta nyt
silmäsi ja katso siitä, missä asut, pohjoiseen, etelään, itään ja
länteen päin. Sillä kaiken sen maan, MINKÄ NÄET, annan minä
sinulle ja sinun siemenellesi ijankaikkiseksi ajaksi. Ja teen sinun
siemenesi niinkuin tomun maan päällä; jos joku voi lukea tomun
maan päällä, niin hän myös voi sinun siemenesi lukea. [Viittaus siitä
kaukana olevaan aikaan, joka antoi riittävästi aikaa sellaiselle hänen
siemenensä lisääntymiselle.] Nouse ja vaella maata pitkin ja poikin;
sillä sinulle sen annan." "Ja minä annan sinulle ja siemenellesi sinun
jälkeesi sen maan, jossa sinä muukalainen olet, koko Kaanaan maan
IJÄISEKSI OMAISUUDEKSI"; (1 Moos. 13: 14—17; 17: 8.) Maan,
johon heillä kerran oli etu päästä, ja jossa he vuosisatoja asuivat.
Mutta sinä aikana revittiin heidät monta kertaa pois ja vietiin
vankeuteen muihin maihin, muukalaisten hävittäessä heidän
kaupunkinsa, juodessa viinin heidän viinitarhoistaan ja syödessä
hedelmät heidän puutarhoistaan. Ja lopulta revittiin heidät kokonaan
juurineen, heidän kaupunkinsa hävitettiin ja tehtiin autioiksi, ja
heidät ajettiin vaeltajina ja maanpakolaisina valtakunnasta
valtakuntaan ympäri koko maailman. Mutta kun heidät jälleen
istutetaan omaan maahansa, tämän lupauksen mukaisesti, "ei heitä
enää revitä pois maastansa", jonka Jumala heille antoi; ja "he
rakentavat autiot kaupungit [kaupungit, joissa he ennen olivat
asuneet] ja asuvat niissä." Hajotettuna, koditonna, ylönkatsottuna ja
vainottuna kansana, ovat he vielä toisista erotettu ja samanlaista
ainesta oleva kansa. Yhdistettyinä veriheimolaisuuden vahvoilla
siteillä, yhteisten toiveitten kautta, yhteisen uskon henkeyttäminä
Jumalan ihmeellisiin lupauksiin, vaikka he ainoastaan hämärästi ovat
ymmärtäneet näitä lupauksia, ja vielä yhdistettyinä myötätunnon
siteillä, jotka johtuvat heidän yhteisistä kärsimyksistään ja
kieltäymyksistään maanpakolaisina, odottavat ja ikävöivät he Israelin
toivoa aivan nykypäivään asti.

Kansana he vielä uskovat Jumalaan, vaikka he sydämensä


sokeudessa ja ylpeydessä ovat pahastuneet Jumalan määrätyn
lähettilään alhaisuuteen, jonka hän lähetti pelastamaan maailmaa;
niin että he, sen sijaan, että olisivat ottaneet vastaan hänet,
ristiinnaulitsivat Vapahtajan, kirkkauden Herran. Ja kumminkin
osottavat sekä apostolit että profetat, että tämäkään huutava rikos,
johon heidän ylpeytensä ja itsepäisyytensä ajoi heidät, ei ole
sellainen rikos, jota ei heille koskaan annettaisi anteeksi. Sen vuoksi
on heitä rangaistu ja ankarasti. Kun he tuomitsivat Vanhurskaan ja
sanoivat: "Tulkoon hänen verensä meidän päällemme ja lastemme
päälle", eivät he ollenkaan aavistaneet sitä kauheaa kostoa, mikä
seurasi. Kauhea hätä ja hukkaantuneet ihmishenget, heidän pyhän
kaupunkinsa ja temppelinsä hävitys, heidän kansallisen
olemassaolonsa täydellinen loppu, ja henkiin jääneen jäännöksen
hajottaminen maanpakolaisuuteen kaikkein kansain keskuuteen,
päätti kokonaan heidän elonkorjuuaikansa työn. Sisälliset
puolueriidat alkoivat sen ja heidän maahansa hyökkäävä
roomalainen armeija päätti sen. Tuli, miekka ja nälkä suorittivat
kauhean kostontyön heidän keskuudessaan.

Siitä ajasta alkain on Israel todella ollutkin hajotettu ja vainottu


kansa. Maanpakolaisina, ajettuina maasta maahan ja maakunnasta
maakuntaan, on heiltä ollut riistetty melkein jokainen oikeus ja etu,
jota muut ihmiset ovat nauttineet. Hyljäten kristinuskon sekä
turmeltuneessa että puhtaassakin muodossa, joutuivat he
roomalaisen kirkon ylönkatseen sekä armottoman vainon esineeksi.
Historian kirjottaja sanoo: —

"Saksassa, Ranskassa, Englannissa ja Italiassa rajotettiin heidän


oikeutensa kokonaan käskyjen ja lakien kautta niin hyvin kirkollisten
kuin yhteiskunnallistenkin hallitusten puolelta; heidät suljettiin pois
kaikista kunniallisista työnhaaroista, ajettiin paikasta toiseen,
pakotettiin elättämään itseään melkeinpä kokonaan kaupalla ja
koronkiskomisella, verotettiin liiaksi ja pidettiin halpoina
kaupungeissa, ahdettiin ahtaisiin asuntoihin, heidän vaatteisiinsa
merkittiin halveksumisen merkki, laittomat paronit ja tarvitsevat
ruhtinaat ryöstivät heitä, he olivat helppo saalis kaikille puolueille
keskinäisten rauhattomuuksien aikana, kerta toisensa jälkeen
ryöstettiin heiltä aineelliset oikeudet, keisarit omistivat ja möivät
heitä ikäänkuin orjia, alhaiso ja kapinalliset maalaiset murhasivat
heitä, munkit ajoivat heitä takaa, ristiretkeläiset lopulta polttivat
heitä tuhansittain, polttaen myöskin heidän kanssaveljiään
Jerusalemissa heidän synagoogissaan, taikka kiusasivat heitä
pilkaten herjaavilla saarnoilla, eriskummallisilla syytöksillä ja
tutkisteluilla, uhkauksilla ja käännytysyrityksillä… He eivät voineet
omistaa maata, eivät kuulua mihinkään ammattikuntaan eivätkä
harjottaa mitään ammattia; he olivat pääasiallisesti pakotetut
kaupantekoon. Ja kun he huomasivat koko ihmiskunnan olevan
sotakannalla heitä kohtaan ei heidän kansallinen ylpeytensä siitä
suinkaan pehminnyt, ja juopa laajeni niinmuodoin juutalaisten ja
heidän pakanallisten naapuriensa välillä kaikkialla."

Kun he ovat olleet siten vieroitettuina Jumalasta ja


kanssaihmisistään kaikissa kansoissa, on heidän kurja tilansa todella
ollut surullinen ja säälittävä. Säälimättömien paavillisten vainojen
aikana ovat he kärsineet yhdessä Jeesuksen pyhien ja marttyyrien
kanssa — kristityt Antikristuksen hylkäämisen, juutalaiset sekä
Kristuksen että Antikristuksen hylkäämisen tähden. Jumalan salliessa
näiden murheiden ja vaivojen kohdata heitä rangaistuksena heidän
kansallis-rikoksestaan, evankeliumin hylkäämisestä ja Lunastajan
ristiinnaulitsemisesta, tulee hän siitä huolimatta aikanaan
palkitsemaan heidät heidän uskonsa kestäväisyydestä hänen
lupauksiinsa, joissa he niin väsymättömästi ovat riippuneet kiinni.
Jumala tiesi edeltäpäin heidän ylpeytensä ja sydämensä kovuuden,
ja ennusti sen niinkuin pahankin, joka heitä on kohdannut; ja yhtä
selvästi on hän ennustanut, että heidän sokeutensa on poistuva ja
lopulta on täyttyvä heihin kaikkiin nähden maalliset lupaukset, jotka
aikoja sitten annettiin Aabrahamille ja joita toiset pyhät profetat
toinen toisensa perästä toistivat. Sitä mukaa kuin aika Jumalan
suosion luvatusta ennalleen-asettamisesta lähestyy, näemme myös
valmistuksia tehtävän sitä varten. Nykyisessä vuosisadassa on
seulomis- ja erottamistyö ilmeinen heidän keskuudessaan, joka jakaa
heidät kahteen luokkaan oikeauskoisiin ja ei-oikeauskoisiin
juutalaisiin. Edelliset pitävät vielä kiinni Jumalan lupauksista ja
toivovat vielä että Jumalan määräämä suosionaika Siionille pian
tulisi. Jälkimäiset ovat kadottamaisillaan uskon henkilökohtaiseen
Jumalaan sekä aabrahamilaisiin lupauksiin ja kulkevat
vapaamieliseen, järkeisuskoiseen ja uskottomaan suuntaan.
Oikeauskoisia ovat useimmat köyhät, vainotut juutalaiset sekä
muutamat rikkaat ja oppineet ja he ovat paljo monilukuisemmat kuin
uskottomat; vaikkakin jälkimäiset ovat verrattomasti
vaikutusvaltaisemmat ja kunnioitetuimmat, usein kauppiaita,
pankkiireja, sanomalehdentoimittajia, j.n.e.

Seuraava on lyhyt yhteenveto oikeauskoisten juutalaisten uskosta:


"Minä uskon totisella ja täydellisellä vakaumuksella että (1) Jumala


on kaikkein olentojen luoja, hallitsija ja tuomari, ja että hän on
aikaansaanut kaikki; (2) että Luoja on yksi, ja että hän yksin on
ollut, on, ja tulee aina olemaan Jumalamme; (3) ettei Luoja ole
ruumiillinen, ettei häntä saata käsittää millään ruumiillisilla
ominaisuuksilla ja ettei ole mitään ruumiillista olentoa, johon häntä
voisi verrata; (4) ettei mitään ollut ennen häntä, ja että hän on oleva
ijankaikkisesti; (5) että häntä, eikä ketään muuta, on palveltava; (6)
että profettain kaikki sanat ovat totta; (7) että Mooseksen
ennustukset olivat tosia; että hän oli etevin kaikista viisaista
miehistä, jotka elivät ennen häntä, tai koskaan tulevat hänen
jälkeensä elämään. [Voimme antaa heille anteeksi että hiukan
liiottelevat kun on kysymys niin jalosta ja arvokkaasta luonteesta.]
(8) että lain, mikä tänäpäivänä on käsissämme, antoi Jumala itse
mestarillemme Moosekselle; (9) ettei sitä lakia koskaan muuteta,
eikä Jumala koskaan anna meille toista; (10) että Jumala ymmärtää
ihmisten kaikki ajatukset ja työt, niinkuin profetoissa on kirjotettu,
'Hän, joka valmistaa kaikki heidän sydämensä, joka tarkastaa kaikki
heidän työnsä'; (11) että Jumala palkitsee niitä hyvällä, jotka pitävät
hänen käskynsä, ja rankaisee niitä, jotka rikkovat ne; (12) että
Messias vielä tulee, vaikkakin hän viivyttää tuloaan, kumminkin
'odotan häntä kunnes hän tulee'; (13) että kuolleet asetetaan jälleen
elämään, kun Luoja sen hyväksi näkee, jonka nimi olkoon siunattu ja
muisto kunnioitettu ijankaikkisesti. Amen."

Heidän temppelinsä hävityksen ja heidän hajottamisensa jälkeen


ovat uhrit lakkautetut, mutta kaikessa muussa pidetään mooseslaiset
säännöt vieläkin oikeauskoisten juutalaisten keskuudessa. Heidän
jumalanpalvelukseensa kuuluu, niinkuin ennenkin, Raamatun
lukeminen, rukous ja kiitos. Pasunajuhlansa toisena päivänä lukevat
he kertomuksen Aabrahamin aikomuksesta uhrata poikansa Iisak ja
Jumalan hänelle ja hänen siemenelleen antaman siunauksen.
Senjälkeen puhaltavat he pasunaan ja rukoilevat, että Jumala veisi
heidät Jerusalemiin.

Uskottomat eli reformi-juutalaiset, "jyrkät", poikkeavat melkoisesti


oikeauskoisista; monet heistä ovat julkisia ateisteja, jotka kieltävät
henkilökohtaisen Jumalan. He kieltävät Messiaksen tulemisen
kokonaan; ja joskaan eivät kokonaan kiellä ennustusta, selittävät he
sen niin, että juutalainen kansa itse on Messias ja alkaa vähitellen
uudistaa maailmaa, ja että kärsimykset, joita on ennustettu
Messiaksesta, toteutuvat vainojen ja kärsimysten kautta, joita he
kansana saavat kärsiä. Toiset heistä selittävät sivistyksen olevan
ainoan maailman Vapahtajan, jota he odottavat.

Edellinen luokka näistä on epäilemättä se, joka tulee jälleen


koottavaksi ja siunattavaksi, kun Messias tulee toisen kerran
voimassa ja kirkkaudessa; ne jotka tulevat sanomaan: "Katso! tämä
on meidän Jumalamme, jota me odotimme, ja hän pelastaa meitä;
tämä on Herra, jota me odotimme; iloitkaamme ja riemuitkaamme
hänen autuudessansa!" (Jes. 25: 9.) Messiaksen opetuksen
selvemmässä valossa häviää kaikki usko tyhjiin perimätietoihin, joita
he vielä pitävät arvokkaina lisäyksinä Jumalan suunnitelmiin. Se aika
lähestyy suurin askelin, jolloin Jumala tulee puhumaan rauhaa
Israelille ja lohduttamaan heitä ja kokonaan poistaman heidän
sokeutensa. Tällä emme tahdo sanoa, ettei niiden sokeus, jotka ovat
vaeltaneet kaukana uskottomuudessa, koskaan tulisi poistetuksi. Pois
se. Kaikkien ja jokaisen kansakunnan sokeat silmät tulevat
avattaviksi; ja kaikki kuurot korvat tulevat kuuleviksi. Mutta mitään
erityistä suosiota eivät uskottomat juutalaiset tule saamaan suosion
ajan palatessa; sillä "ei se ole juutalainen, joka vain ulkonaisesti on
juutalainen" — ainoastaan sukulaisuuden ja kasvojenpiirteiden
kautta. Jumala tunnustaa Aabrahamin lapsiksi ainoastaan ne
juutalaiset, jotka pitävät kiinni Aabrahamin uskosta ja luottavat
jumalallisiin lupauksiin.

ANGLOISRAELILAISET.

Tässä meidän on lausuttava poikkeamisemme niiden mielipiteistä,


jotka väittävät, että anglo-saksilaiset ovat Raamatussa mainittu
lupauksen Israel. Lyhyesti mainiten väittävät he, että anglo-saksit,
eräs kansa Yhdys-Valloissa j.n.e. on Israelin kymmenen sukukunnan
jälkeläisiä, jotka erosivat Juudan ja Benjamin sukukunnista Salomon
kuoleman jälkeen, ja joita usein kutsutaan "kymmeneksi
kadonneeksi suvuksi"; koska vankeuden jälkeen Baabelissa (kaikista
kahdestatoista sukukunnasta) kymmenen sukukuntaa ei koskaan
asettunut Kaanaan maahan Israelina, vaan hajotettiin ne
sukukuntina ja yksityisinä eri kansakuntien keskuuteen. Ne, joiden
selityksiä me tarkastamme, väittävät, että he saattavat seurata
heidän vaellustaan Isoon-Britanniaan, ja että englanninkieltä
puhuvain kansain suuruus ja vaikutusvalta maailmassa saatetaan
johtaa siitä asianhaarasta, että he kuuluvat Israeliin ja perivät
Israelille annetut lupaukset.

Tähän vastaamme: Muutamat niistä todistuksista, joita esitetään


tueksi siitä, että he ovat noita "kadonneita sukuja", eivät näytä
olevan ollenkaan päteviä; mutta joskin me myöntäisimme kaikki mitä
he tässä väittävät, niin todistaisi se yhtä vähän heidän väitteensä,
että nim. anglo-saksilaisen rodun vaikutusvalta ja suuruus johtuvat
siitä asianhaarasta, että he ovat israelilaisia luonnollisen
polveutumisen kautta, kuin se todistaisi että tämä johtuu siitä että
he ovat "kadonneita". Heidän suuruutensa johtuu heidän
vapaudestaan ja ymmärtäväisyydestään, jotka taasen eivät johdu
siitä, että he ovat kadonneet, eikä myöskään siitä että he ovat
syntyneet luonnollisiksi israelilaisiksi, vaan johtuvat ne Kristuksen
opeista — siitä valosta, minkä muutamat Aabrahamin hengellisestä
siemenestä ovat antaneet loistaa heidän keskuudessaan.

Se seikka, että kymmenen sukua eksyivät noista kahdesta, ei


suinkaan ole heille kunniaksi, vaan päinvastoin. Se todistaa, että he
olivat halukkaita hylkäämään Jumalan lupaukset; se on
jumalankieltämisen, uskottomuuden merkki; sillä he tiesivät hyvin
Jumalan ennakolta sanoneen, että Lainantaja, Pelastaja, Lunastaja,
Kuningas, jossa ja jonka kautta lupaukset toteutuisivat, tulisi
Juudasta. Benjamin suku oli sentähden ainoa suku Juudan rinnalla,
joka kapinan aikana osotti uskoa Jumalan lupauksiin. Mutta,
vaikkakin Baabelin vankeudesta palaamisen aikana ne, jotka
edelleen osottautuivat uskovansa Jumalaan ja hänen lupauksiinsa
palaamalla Kaanaan maahan, olivat suurimmaksi osaksi Juudan ja
Benjamin sukukunnista, niin eivät kumminkaan kaikki, jotka
palasivat, olleet näitä kahta sukukuntaa. Heidän joukossaan oli
muutamia toisista sukukunnista, jotka rakastivat Jumalaa ja
katuvaisina etsivät häntä, vielä luottaen hänen lupauksiinsa.
Kuitenkaan ei suuri enemmistö, enemmän kymmenestä kuin
kahdestakaan sukukunnasta, käyttänyt tilaisuutta hyväkseen
palatakseen lupauksen maahan, koska pitävät parempana Baabelia
ja toisia maita senkautta että olivat langenneet epäjumalisuuteen ja
kadottaneet kunnioituksensa Jumalan lupauksiin.

Meidän on muistettava, että ainoastaan muutamat niistä, jotka


palasivat maahansa Esran johdolla, eikä kukaan niistä, jotka
palasivat Nehemian johdolla, oli niitä, jotka oli viety vankeuteen, sillä
suurin enemmistö oli kuollut vuosikausia sitä ennen Baabelissa.
Nämä olivat heidän lapsiaan, joiden sydämissä isäin usko vielä paloi,
jotka vielä toivoivat siunauksia ja kunniaa, joita Aabrahamin
siemenelle oli luvattu. Siten muodosti pieni, vähempi kuin
viisikymmentuhantinen palaava joukko kaikki silloin jälelle jääneet
israelilaiset, kaikista sukukunnista, jotka palaamisellaan lupauksen
maahan osottivat, vielä riippuvansa kiinni Aabrahamin uskossa. Näille
soveliaimmille, kaikista Israelin sukukunnista seulotuille jälkeläisille
— vaikkakin pääasiallisesti kahdesta sukukunnasta, joita kaikkia
nimitetään juutalaisiksi, kuninkaallisen ja hallitsevan sukukunnan
mukaan — Herramme juuri esitti itsensä ja valtakuntansa
ensimäisessä tulemisessa, koska he esittivät pyhää kansaa, Israelia,
kokonaisuudessaan.

Herramme nimitti heitä Israeliksi eikä Israelin osaksi, eikä


myöskään ainoastaan Juudaksi. Puhuupa hän niistäkin, jotka olivat
pitäneet kiinni lupauksista ja toisistaan, että olivat "Israelin huoneen
kadonneita lampaita", sentähden että olivat eksyneet kauvas
totuudesta seuraten väärien paimenten perimätietoja, jotka olivat
johtaneet heitä omaa tietään eikä Jumalan osottamaa tietä. Hän
sanoo: "Minua ei ole lähetetty muiden kuin Israelin huoneen
kadonneiden lammasten tykö". Israelin huoneeseen oli niinmuodoin
hänen virkansa rajotettu; mikä pitää edellisen kanssa yhtä ja
osottaa, että juutalaiset hänen aikanaan olivat ainoat hyväksytyt
"Israelin huoneen" edustajat, niinkuin lauseet "koko Israel",
"kaksitoista sukukuntaamme Jumalaa herkeämättä palvellen" ja
toiset samanlaiset Herramme ja apostolien lausunnot osottavat. Ja
muistettanee, että Herramme tämän yhteydessä lausui, että hänen
virkansa oli Israelia varten, kieltäen opetuslapsiaan menemästä
muiden kuin Palestiinan juutalaisten tykö. — Matt. 10: 5, 6; 15: 24.

Huomaa myöskin, kuinka apostolit käyttivät sanaa "Israel" eikä


"Juuda" kun he puhuivat niistä, jotka sinä aikana asuivat
Palestiinassa (Apt. 2: 22; 3 12; 5: 35; 13: 16; 21: 28), ja kuinka he
sovittavat Jesajan sanat mikäli ne koskevat Israelin jäännöstä noihin
verrattain harvoihin, jotka ottivat vastaan evankeliumin (Room. 9: 4,
27, 29, 31—33; 10: 1—4; 11: 1, 7—14, 25, 26, 31) ja puhuvat
kaikista toisista loukkautuvina ja sokeutuvina. Siis, vaikkakin
saatettaisiin todistaa, että anglo-saksilaiset kansat olisivat osa noista
kymmenestä kadonneesta sukukunnasta, näemme selvästi, ettei
mitään suosiota saattanut tulla heidän osakseen sen perustuksella
tästä liitosta; sillä he hylkäsivät israelilaisen liiton ja heistä tuli
epäjumalan palvelijoita, uskottomia ja oikeastaan pakanoita.
Sitäpaitsi tulivat, niinkuin jo on huomautettu [II Osa, 7 luku], kaikki
ne, jotka tunnustettiin Aabrahamin luonnolliseksi siemeneksi, joka
edelleen tulisi hylkäämään Kristuksenkin, syöstyiksi kaikesta
suosiosta Kristuksen kuoleman ajasta alkain vuoteen 1878 asti,
jolloin oli tullut aika Jumalan suosion palaamiselle heille, ja heidän
sokeutensa alkoi poistua. Niinmuodoin ei se etevyys, joka anglo-
sakseille menneinä vuosisatoina muihin nähden on ollut, ole missään
suhteessa voinut olla Israelin palaavaa suosiota. Niille, joilta suosio
otettiin pois syystä että hylkäsivät ja ristiinnaulitsivat Herran, alkaa
suosio nyt palata. Sinä aikana ja siitä asti on "juutalainen" edustanut
Israelia (Room. 2: 9, 10), ja juuri juutalaiset tulevat nyt asetettaviksi
ennalleen suosioon Aabrahamin luonnollisena siemenenä. Nämä,
yhdessä hengellisen "siemenen" kanssa (joka on valittu
evankelikautena — jäännös Israelista, juutalaisista, ja loppu koottu
pakanoista) tulevat Jumalan aseiksi maan kaikkien sukukuntien
siunaamiseksi. Eikä myöskään tuleva suosio Israelille tule olemaan
yksinomaan heille. Kaikki, jotka uskovat liittolupauksiin, saattavat
luonnollisen siemenen kanssa tulla osallisiksi palaavista suosion
eduista, aivan samoin kuin evankelikautena kuka juutalainen
tahansa, joka otti vastaan Kristuksen, oli otollinen saamaan kaikki
hengelliset siunaukset ja edut, joita evankelikautena tarjottiin.
Samoin kuin alussa ainoastaan pieni jäännös uskoi ja otti vastaan
evankeliumin armolahjoja, samoin tulee paitsi juutalaisia, ainoastaan
pieni luku ihmissuvusta olemaan valmis tuhatvuotiskauden uusille
laeille ja ehdoille, kirkastetun Herran ja hänen kirkastetun
seurakuntansa vanhurskaan hallituksen aikana; ja niinmuodoin
tulevat aluksi ainoastaan harvat muista paitsi juutalaisista
siunattaviksi. Juutalainen, joka kauvan oli tottunut, ja koettanut
tehdä, luottaen, että lainkuuliaisuus vakuuttaisi hänelle jumalallisen
siunauksen, kompastui ensimäisellä askeleella evankeli-taloudessa —
syntein anteeksiantamiseen ilman töitä, jokaiselle, joka uskoo
Jeesuksen täydelliseen työhön ja kokonaan riittävään synti-uhriin.
Mutta juutalaisen kunnioitus lakia kohtaan tulee olemaan hänelle
eduksi tubatvuotiskauden koittaessa, eikä kukaan tule olemaan
valmistuneempi sen ajan ankarille vaatimuksille ja laeille kuin hän,
senjälkeen kuin hänen sokeutensa Kristukseen ja hänen syntiuhrinsa
arvoon nähden on poistunut; sillä töitä vaaditaan senjälkeen kun
uskoo Kristukseen, vaikkei niitä sitä ennen voida hyväksyä. Ja
juutalainen, kun hän ottaa vastaan Jumalan rakkauden ja armon
Kristuksessa, ei tule olemaan niin taipuvainen kadottamaan
näkyvistään Jumalan oikeudenmukaisuutta, niinkuin monet muut
tänä aikana. Toiset sitävastoin tulevat jonkun aikaa olemaan
sokeutuneet eivätkä ole valmiit tunnustamaan valtakunnan sääntöjä,
joissa oikeus tulee olemaan ojennusnuorana ja vanhurskaus
luotinauhana.

Niinkuin juutalainen oli sokeutunut väärän käsityksen kautta laista,


joka tehtiin tyhjäksi väärien oppien kautta, samoin estyvät nytkin
monet pakanat tarttumasta kiinni armon ehtoihin
tuhatvuotiskautena, sen kautta että esitetään väärin syntein
anteeksiantaminen armosta, jota väärät opettajat nykyaikana
opettavat, jotka tekevät tyhjäksi evankeliumin Jumalan armosta
viisastelevien väittelyjensä kautta — "vieläpä kieltäen senkin, että
Herra on ostanut heidät" (2 Piet. 2: 1), taikka että minkäänlainen
lunastushinta on maksettu tai oli tarpeellinen ihmisen
ennalleenasettamiseksi. He väittävät että rikkominen on inhimillistä,
anteeksiantaminen jumalallista; ja niinmuodoin päättelevät he, että
synti joskus on suvaittava, ja että rangaistuksen ankaruus, lunastus,
j.n.e. ei tule kysymykseen, sillä jos ei olisi anteeksi annettavia
syntejä, poistaisi se Jumalalta viran ja tilaisuuden antaa anteeksi.
Kadottaen Jumalan vanhurskauden näkyvistä, eivät he saata nähdä
sisäistä yhteyttä hänen suunnitelmassaan sovinnosta veren kautta
ristillä, joka myöntää synteinanteeksiantamisen lunastusuhrin kautta
ainoastaan sellaisille, jotka ottavat vastaan Kristuksen ja taistelevat
syntiä vastaan. Sokeutuneet pintapuolisten käsitystensä kautta
Jumalan vanhurskaudesta ja ankarasta tarkkuudesta, tulevat harvat
olemaan niin hyvin valmistuneet kuin juutalaiset tähän ankaraan
tottelevaisuuteen kykynsä mukaan, joka tulee vaadittavaksi kaikilta
tulevassa ajassa.

Valaisemaan juutalaisen valmistumista tunnustamaan Jeesuksen


Kristuksen kuoleman lunastukseksensa — vastaavana hintana —
laillisena sovintona ihmisen synnistä, esitämme tässä alempana
nuoren, Kristukseen kääntyneen juutalaisen kynästä lähteneen
kertomuksen "Suuren Sovintopäivän" vuosittaisesta viettämisestä
sellaisena kuin oikeauskoiset juutalaiset nykyaikana viettävät sitä.
Kirjotus oli painettu lehdessä The Hebrew Christian (Kristitty
Juutalainen), ja kuuluu seuraavasti: —

"Yom Kippur, eli Suuri Sovintopäivä, oli merkkipäivä isälleni; sillä


hän ei ainoastaan paastonnut, rukoillut ja kurittanut lihaansa tuona
pyhänä, syntien poispyyhkimispäivänä, vaan hän vietti todella koko
yön synagoogassa hartausharjotuksessa. Olen usein nähnyt
hurskaan isäni itkevän tuona suurena päivänä, jolloin hän toisteli
liikuttavan synnintunnustuksen, joka seuraa niiden uhrien
luettelemista, joita Jumala oli määrännyt esiinkannettavaksi
laiminlyömis- ja ylitsekäymissynneistä; ja monta kertaa olen
vuodattanut myötätunnon kyyneleitä, kun hänen kanssaan otin osaa
valituksiin siitä, ettei meillä nyt ole temppeliä, ei ylimäistä pappia, ei
alttaria eikä uhria. Juhlapäivän edellisenä päivänä otti hän, toisten
juutalaisten seuraamana, kukon; ja toistellen muutamia
rukouskaavoja, heilutti hän elävää kukkoa kolme kertaa päänsä
ympäri, lausuen nämä sanat: 'Olkoon tämä minun edesvastaajani,
olkoon tämä minun korvausmaksuni, olkoon tämä sovitukseni, tämän
kukon on kuoltava ja minä pääsen autuaaseen elämään.' Sitten pani
hän kätensä sen päälle, niinkuin oli tapana panna uhrien päälle, ja
kohta sen jälkeen jätettiin se teurastettavaksi. Tämä on ainoa veri,
joka nykyään vuodatetaan Israelissa. Härkäin ja kauristen veri ei
nykyään enää vuoda kuparialttarin vieressä."

"Isäni hankki suurella vaivalla itselleen valkosen kukon ja karttoi


kokonaan punaista, ja kysyttyäni häneltä syytä, miksi hän teki niin,
sanoi hän minulle, että punainen kukko jo oli synnin peittämä, sillä
synti on itsessään punainen, niinkuin on kirjotettu: 'Jos teidän
syntinne veriruskeat ovat, niin ne lumivalkeaksi tulevat; jos ne
tulipunaisia ovat, niin ne villan kaltaisiksi käyvät.' (Jes. 1: 18.) Hän
jatkoi: 'Sinä saat huomata, että rabbinit ovat säätäneet Talmud'issa,
että jos kukko on valkonen, ei se ole synnin saastuttama ja saattaa
se sentähden kantaa juutalaisten synnit; mutta jos se on punainen,
on se kokonaan synnin peittämä ja on kelvoton kantamaan meidän
vääryytemme.'"

"Syy, miksi he käyttävät kukkoa mieluummin kuin mitään muuta


eläintä, on siinä, että hebrean kielellä sana 'ihminen' on gever
[gebher]. Jos nyt gever [ihminen] on tehnyt syntiä, saa gever
myöskin sovittaa sen. Mutta koska rangaistus on raskaampi kuin
mitä juutalaiset saattavat kantaa, ovat rabbinit heidän sijaansa
asettaneet kukon, jota kaldealaisella murteella sanotaan gever'iksi,
ja otaksutaan jumalallisen vanhurskauden siten olevan tyydytetyn;
koska gever on tehnyt syntiä, samoin täytyy gever, s.o. kukko,
myöskin uhrata."

"Tätä turhanpäiväistä keksintöä saattaa kuitenkin pitää


merkillisenä todistuksena erittäin sattuvasta seikasta, siitä nimittäin,
että kun monet juutalaisista nykyaikana kokonaan kieltävät
sovinnon, niin on kansan pääjoukolla vielä jonkunlainen tunne siitä,
että uhri synnin edestä on ehdottomasti tarpeellinen, ja ettei
katumus ilman sovitusta ole miksikään hyödyksi pelastukseen
nähden. Jos juutalaiset, sen sijaan, että lukevat rabbinien satuja,
tahtoisivat tutkia Raamattua, tulisivat he huomaamaan, että Herra
Jeesus, todellinen Messias, omassa siunatussa persoonassaan on
toimittanut juuri tuon sovituksen synnin edestä, jonka he
tietämättömyydessään luulottelevat voivansa toimittaa uhraamalla
kukon. Gever [ihminen] on tehnyt syntiä, ja gever [ihminen],
ihminen Kristus Jeesus, on antanut elämänsä uhriksi synnin edestä.
— Jes. 53: 10."

JUUTALAISELLE ENSIN.

Me näemme siis, Jumalan ennustuksen siitä, että Israel [paitsi


harvoja uskollisia] tulisi sokeutumaan oman lakinsa kautta (Room.
11: 9), täyttyvän luonnollisella tavalla; ja myöskin, että hänen
ennustuksensa siitä, että Tuhatvuotiskauden armolahjat ja edut
tulevat siunaamaan toisia heistä pikemmin kuin toisia, toteutuvan
aivan luonnollisella tavalla, selvien syiden aiheuttamana.

Siten tulevat Tuhavuotiskauden armolahjat juutalaisille ensin,


aivan niinkuin liiton j.n.e. johdosta evankeliumin armolahjat tarjottiin
heille ensin. Ja niin on lopulta käyvä niinkuin Simeon ennusti: "Tämä
on pantu lankeemukseksi ja nousemukseksi monelle Israelissa." Ja
aika tämän kansan nostamiselle, kansan, joka niin kauvan on ollut
suosiosta langennut, on lähellä.

Mutta olkaamme varuillamme aivan tavallista erehdystä vastaan,


jonka useat niistä, jotka näkevät jotain näistä lupauksista, tekevät,
nimittäin luullessaan että on kirjaimellisesti käsitettävä ne lauseet,
jotka sanovat: "Sen jälkeen minä palaan ja rakennan jälleen
Daavidin luhistuneen majan [huoneen]; minä rakennan sen jälleen
raunioistaan ja pystytän sen uudestaan." "Ja Herra Jumala antaa
hänelle Daavidin, hänen isänsä valtaistuimen." "Ja minun palvelijani
Daavid on oleva kuninkaana heidän ylitsensä." (Apt. 15: 16; Luukk.
1: 32; Hes. 37: 24). Samalla kuin kirjaimellinen lupaus Israelin
palaamisesta omaan maahansa ja Jerusalemin
ennalleenrakentamisesta omille rauniolleen ei saata tulla
kysymykseen, voimme olla vakuutetut siitä, että Daavidin huoneella
ja istuimella ei tarkoteta kirjaimellisia kiviä, rakennustarpeita j.n.e.
Daavidin huoneen jälleen rakentaminen tarkottaa kuninkaan vallan ja
hallituksen jälleen asettamista jonkun Daavidin jälkeläisen käsiin.
Kristus Jeesus on Daavidin huoneen luvattu vesa ja hänen
istuimensa perillinen; ja kun hänen valtansa alkaa rakentua, alkaa
Daavidin huoneen eli majan pystyttäminen (pysyvä rakentaminen),
joka huone hävitettiin ja joka monia vuosisatoja on ollut tuhkana.
Samoin ei "Daavidin istuin" jolla Messias tulee istumaan, tarkota sitä
puista, kultaista ja elfenluista penkkiä, jolla Daavid istui, vaan sen
viran arvoa, voimaa ja valtaa, jota hän harjotti. Tätä valtaa, tätä
virkaa eli tätä istuinta tulee Jehovan Voideltu, meidän Herramme
Jeesus, käyttämään paljon suuremmassa määrässä.

Mutta mikä valta Daavidilla oli, ja mitä valtaa hän käytti? Me


vastaamme, se oli Jehovan valta: Daavid "istui Herran Jehovan
istuimelle" (1 Aikak. 29: 23); ja juuri tämän vallan kannattajana
tulee Kristus olemaan Tuhatvuotisessa Valtakunnassaan. Ja kun
asiaa katsotaan oikealta kannalta, on selvää, että Daavid ja hänen
istuimensa eli jumalallinen valtansa, joka oli pystytetty esikuvalliseen
Israeliin, olivat ainoastaan esikuvallisia valaistuksia Kristuksesta ja
hänen valtakunnastaan; ja Daavidin suurin kunnia tulee olemaan, jos
hänet katsotaan arvolliseksi, se, että hän saa olla yksi "ruhtinaista",
joille Emanuel tulee uskomaan valtakuntansa maallisen puolen. —
Ps. 45: 17.
Daavidin nimi samoinkuin hänen valtakuntansakin olivat
esikuvallisia. Nimi Daavid merkitsee Rakastettu; ja sinä päivänä tulee
Jumalan rakas Poika olemaan koko maan kuningas, eikä
esikuvallinen rakastettu Daavid menneisyydestä. Hyvä on myöskin
varmasti erottaa Uuden Jerusalemin, taivaallisen eli hengellisen
kaupungin välillä jossa apostolit ovat kaksitoista peruskiveä, ja
vanhan Jerusalemin välillä, joka on rakennettava jälleen vanhoille
raunioilleen. Vanhan Jerusalemin luvattu ennalleenasettaminen ei
merkitse ainoastaan rakennusten uudelleen rakentamista y.m. vaan
erityisesti Israelin hallituksen ennalleen-järjestämistä; sillä
ennustuksessa on kaupunki aina hallituksen vertauskuva.
Niinmuodoin merkitsee Jerusalemin luvattu uudelleen rakentaminen
vanhoille perustuksilleen Israelin kansallista ennalleen-järjestämistä
samanlaiselle kansalliselle pohjalle kuin se ennenkin oli, kansana,
jota Herran Voideltu hallitsi. Uusi Jerusalem esittää evankelista
Seurakuntaa kirkkaudessa ja kuninkaallisessa vallassa, hengellisenä
ja näkymättömänä ihmisille, ja kumminkin kaikkivaltiaana. Sen
laskeutuminen maan päälle (Ilm. 21: 2) on sen rukouksen
täyttyminen Isä meidän rukouksesta, joka sanoo: "Tulkoon,
valtakuntasi"; ja sen tuleminen tulee tapahtumaan asteettain eikä
äkkiä. Se alkaa jo laskeutua, tulla valtaan, ja seurauksena siitä
näemme valmistavia toimenpiteitä, jotka johtavat vanhan
Jerusalemin ennalleenasettamiseen; ja lopulta tulee tulos, joka
mainitaan Herran rukouksessa, toteutumaan; — Jumalan tahto tulee
tapahtumaan maan päällä niinkuin taivaassa. Uusi Jerusalem ja
uudet taivaat merkitsevät aivan samaa ja tarkottavat uutta
hengellistä hallitusta.

Ennustukset, joita jo on tutkittu, viittaavat vuoteen 1878 sinä


vuosilukuna, jolloin Israelin "kaksinkertainen" aika, jolloin se odotti
Kuningasta, oli täyttynyt, ja josta ajasta alkain heidän palaamisensa
suosioon ja heidän sokeutensa poistuminen alkaisi; se aika jonka
jälkeen olisi paikallaan "puhua sydämellisesti Jerusalemeille ja
julistaa sille, että sen sotimisen aika [sen 'kahdenkertainen'
odotusaika] on päättynyt, että sen pahateko on maksettu, että se on
kaksinkertaisesti saanut Herran kädestä kaikkien syntiensä tähden."
— Jes. 40: 1, 2.

Siitä vuosiluvusta alkain näemme sentähden, niinkuin on


odotettavakin, huomattavia merkkejä suosion palaamisesta tälle
kansalle — näemme liikkeen joka suuntautuu heidän todelliseen
istuttamiseensa oinaan maahansa jälleen, ja heidän
ennalleenrakentamiseensa suureksi kansaksi, Jumalan
moninkertaisten sen tapaisten lupausten mukaan; sillä "Näin sanoo
Herra Israelin Jumala: niinkuin nämä fiikunat ovat hyviä, niin olen
minä hyväksi katsova Juudan vankeja, jotka minä [sen kuritukseksi
ja rangaistukseksi — hyvää valhepuvussa] lähetin tästä paikasta
Kaldean maahan [Baabeliin — salaiseen Baabeliin, kristikuntaan
niinkuin 9 värsyssä osotetaan; sillä heidän kukistumisestansa asti
ovat he olleet hajotetut kaikkein kansain keskuuteen n.k.
kristikunnassa]. Ja olen heidän hyväksensä pitävä heitä silmällä, ja
minä palautan heitä tähän maahan ja rakennan heitä, enkä hajota,
ja istutan heitä enkä revi heitä ylös. [Tämä ei saattanut tarkottaa
heidän palaamistansa kirjaimellisesta Baabelista, koska heidät tämän
palaamisen jälkeen uudelleen hajotettiin ja revittiin ylös.] Ja minä
annan heille sydämen tuntemaan minua, että minä olen Herra, ja he
saavat olla minulle kansana ja minä olen heidän Jumalansa; sillä he
kääntyvät minun puoleeni kaikesta sydämestänsä." — Jer. 24: 5—7.

"Näin sanoo Herra: katso, minä muutan Jaakobin majain


vankeuden ja hänen asuntojansa minä armahdan; ja kaupunki
[Jerusalem] rakennetaan jälleen kukkulallensa ja hovilinna
[temppeli] asutaan säännöllisesti… Ja hänen lapsensa on niinkuin
ennenkin, ja hänen seurakuntansa on pysyvä minun edessäni; ja
minä kostan kaikille hänen ahdistajillensa. Ja hänen ruhtinaansa on
hänestä tuleva ja hänen hallitsijansa on hänestä lähtevä… Katso,
minä annan heidän tulla pohjan maalta [Venäjältä, jossa melkein
kaksi kolmatta osaa kaikista nykyään elävistä juutalaisista nykyään
asuu] ja kokoan heidät maan ääristä… suurena joukkona he palaavat
tänne. Itkulla he tulevat ja rukoilevaisina minä heitä kuljetan…
Kuulkaat Herran sanaa, te kansat ja ilmottakaat kaukaisissa
luodoissa, sanokaat: Hän, joka Israelin hajotti, on hänet kokoava ja
häntä varjeleva niinkuin paimen laumaansa. Sillä Herra lunasti
Jaakobin ja pelasti hänet sen kädestä, joka oli häntä väkevämpi. Ja
he tulevat ja riemuitsevat Siionin kukkulalla ja tulvailevat Herran
hyvyyden tykö, viljan ääreen ja viinin ja öljyn ja karitsan ja karjan
ääreen. Ja heidän sielunsa on oleva niinkuin kasteltu puutarha, eikä
se enää ole nääntyvä." — Jer. 30: 18, 20, 21; 31: 8—12.

Suuri Lunastaja, jonka he kerran hylkäsivät, ei tule


ennalleenasettamaan ja nostamaan ainoastaan nykyään elävät
suvut, vaan kuolleetkin ovat asetettavat ennalleen; sillä, "Näin sanoo
Herra, Herra: katso minä avaan teidän hautanne ja saatan teidät
ulos haudoistanne, sinä minun kansani, ja tuotan teidät Israelin
maalle. Ja te tulette tietämään, että minä olen Herra kun minä avaan
teidän hautanne… ja minä annan henkeni teihin ja te tulette eläviksi,
ja minä annan teidän asettua omalle maallenne; ja te tulette
tietämään, että minä, Herra, olen puhunut, ja teenkin sen, sanoo
Herra, Herra." — Hes. 37: 12—14.

Nämä ihmeelliset lupaukset eivät tule täyttymään


kaksikymmenneljätuntisena päivänä vaan Tuhatvuotispäivän
kuluessa. Niiden täyttymisellä oli huomattava alku vuonna 1878
seurauksena Berliinin kansainvälisestä kongressista. Juutalaiset
nauttivat nyt suurempia oikeuksia isäinsä maassa kuin heille on
myönnetty vuosisatain kuluessa. He eivät enää ole ainoastaan
"koiria" julkeille turkkilaisille.

Ei ole, luulemme, yleisesti tunnettua, että Englanti jo on ottanut


suojeluksensa alaiseksi Palestiinan, ja oikeastaan Turkin kaikki
aasialaiset maakunnat, joista Palestiina on yksi. Kauvan aikaa on
Englanti pitänyt tarpeellisena suojella Turkkia, kolmestakin syystä:
ensiksikin omistavat sen rikkaat luokat suuret määrät turkkilaisia
obligationeja; toiseksi, jos Turkki joutuisi minkä naapurivallan
saaliiksi tahansa tai jaettaisi niiden kesken, ei Englanti saisi paljon,
tuskinpa mitään koko saaliista; ja toiset vallat, sen kilpailijat,
pääsisivät sillätavoin Englannin edelle arvossa ja vallassa Euroopan
asioita järjestettäessä; ja kolmanneksi, ja joka onkin pääasia,
Englanti huomaa, että jos turkkilainen hallitus olisi tieltä pois,
lisääntyisi Venäjän vaikutus melkoisesti etelä-Aasiassa, ja se tulisi
piankin itselleen anastamaan intialaisen vallan, jonka keisari
Englannin kuningas on, ja josta Englannilla on suuret tulot kaupan
y.m. kautta. Senpätähden huomaamme kuninkaallisen tai
Torypuolueen Englannissa innokkaasti tukevan turkkilaisia; ja kun
Venäjä, vuonna 1878 aikoi hyökätä Konstantinopoliin, asettui
Englanti sitä vastaan ja lähetti tykkivene-laivaston satamaan.
Tuloksena oli Berliinin-konferenssi, kesäkuun 13 p. 1878, jossa eräs
juutalainen, Englannin pääministeri, Lordi Beaconsfield, näytteli pää-
osaa; Turkin asiat järjestettiin silloin siten, että sen kansallinen
olemassa-olo tällä kertaa säilytettiin, mutta sen maakunnat
järjestettiin kumminkin niin, että mahdollisen jakamisen sattuessa,
suurvallat tietäisivät minkä osan kukin saattaisi ottaa. Tänä aikana
juuri myönnettiin kaikille Turkin maakunnille suurempi uskonvapaus,
ja Englanti tuli, salaisen sopimuksen kautta Turkin kanssa,
aasialaisten maakuntain suojelijaksi. Puhuaksemme
historiankirjottajan, Justin Mc. Carthy'n mukaan: —

"Englannin hallitus takasi Turkille suojelevansa sen aasialaisia


alusmaita kaikkia hyökkäyksiä vastaan, … velvottautui varsinaisesti
puollustamaan ja turvaamaan Turkkia kaikkia hyökkäyksiä vastaan ja
linnoitti Kypron saadakseen tätä tarkotusta varten edullisemman
pohjan toiminnalleen."

Siis huomataan Palestiinan, joka on yksi näistä aasialaisista


maakunnista, jo olevan Englannin suojeluksen alaisena, ja tämä
selittää syyn miksi turkkilainen hallitus niin veltosti sovittaa
juutalaisten pyrintöihin epäsuotuisia lakejaan. Ja sen jälkeen kun
kohtalon salliman kautta Palestiina avattiin juutalaisille, tuli uusia
juutalais-vainoja "pohjan maalla" — Venäjällä ja Rumaaniassa —
jonka varmana seurauksena oli siirtolaisuus näistä maista omaan
maahansa. Tuloksena tästä asianhaarain yhtymästä on juutalaisen
väestön oikeauskoisen osan nopea kasvaminen Palestiinassa ja
erityisesti Jerusalemissa. Juutalaiset Jerusalemissa voittavat jo
luvullaan kaikki muut kansallisuudet yhteenlaskettuina, sen sijaan
että he vuosisatoina ovat olleet siellä aivan harvalukuisia. The New
York Herald (New-Yorkin Sanomat) lausui joku aika takaperin
Englannista mikäli se koski Kreeta- saaren valtaamista, Egyptin
miehittämistä ja Turkin ja sen maakuntien tilaa ylipäänsä, seuraavaa:

"Me elämme nopeassa aikakaudessa, ja historiaakin tehdään


suurella nopeudella. Sodat kestivät ennen kymmeniä vuosia;
yhteiskuntaviljelys edistyi vitkallisesti, yhteiset kulkuneuvot eri
kansojen välillä ja siitä johtuva keskinäinen hyöty edistyivät samassa
suhteessa hitaasti. Mitä nyt sitä vastoin keksitään jossain maassa, se
tulee heti tunnetuksi tuhansien peninkulmain päässä, ja koko
maailma saattaa yhtähaavaa hyötyä keksinnöstä. Etenkin politiikassa
on kiiruhtamisen henki ilmeinen. Valtiomiesten suunnitelmat
tarvitsivat ennen ihmispolvia täyttyäkseen; nykyään suorittavat mitä
rohkeimmat suunnitelmat niiden laatijat itse, ja maanosan kartta
saattaa viikossa muuttua. Tapahtumain ripeää kulkua ja historian
luomista todistaa erittäin selvästi magneettinen itämainen kysymys…
Keskellä yhteentörmäävien etujen näyttämöä sijaitsee Palestiina —
kallisarvoinen juutalaiselle, kristitylle ja muhamettilaiselle. Valtiomies
sanoo sen olevan aseman avaimen; ja silmällä pitäen
maanmiestensä parasta selittää hän, että katsoen sen erinomaiseen
viljavuuteen, joka muinoin elätti miljoonia; katsoen sen
suurenmoisiin mahdollisuuksiin kauppaan nähden, joka muinoisin
teki sen merisatamat työn ja rikkauden näyttämöksi ja teki Tyyron ja
Siidonin sananlaskuksi näihin päiviin asti; katsoen siihen etuun, että
se on yhtymäkohtana Euroopan ja Aasian välillä ja että sillä
niinmuodoin on mitä erinomaisin asema, on Palestiinan omistaminen
hänen isänmaata rakastavalle sydämelleen suurimmassa määrin
suotava. Historiankirjottaja sanoo: Ensimäinen kansainvälinen
tapahtuma, joka on muistiinkirjotettu, oli hyökkääminen Palestiinaan;
siitä ajasta alkain on se ollut mieltäkiinnittävänä keskipisteenä;
sentähden on hän puolestaan huvitettu Palestiinan tulevaisuudesta.
Uskonnollismielinen ei löydä kyllin sanoja lausuakseen sitä
mielenkiintoa, jota hän tuntee nimittämäänsä Pyhää maata kohtaan;
hänelle on jokainen kivi saarna, jokainen puu runo. Selvänäköinen
kauppias huomaa, että kun aasialainen rautatiejärjestelmä on
rakennettu, kuten se varmasti tuleekin rakennetuksi niin pian kuin
pysyväinen hallitus on asetettu, tulee Palestiina maantieteellisen
asemansa johdosta olemaan valtio, jossa suuret rautatieradat tulevat
yhtymään viedäkseen Aasian tuotteet eurooppalaisille ja

You might also like