-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
163 lines (163 loc) · 6.48 KB
/
index.html
File metadata and controls
163 lines (163 loc) · 6.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
<!DOCTYPE html>
<html lang="en-US" xmlns="http://www.w3.org/1999/html">
<head>
<title>Code Filarete</title>
<meta name="Keywords" content="Java ORM architecture CQRS Hibernate JPA method-reference">
<link href="asset/css/home.css" rel="stylesheet"/>
<script src="asset/rainbow-custom.min.js"></script>
<link rel="stylesheet" href="asset/rainbow-doc.css">
<link rel="apple-touch-icon" sizes="180x180" href="asset/icon/favicon/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="asset/icon/favicon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="asset/icon/favicon/favicon-16x16.png">
<link rel="manifest" href="asset/icon/favicon/site.webmanifest">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@splidejs/splide@4.0.1/dist/css/splide.min.css">
<script src="https://cdn.jsdelivr.net/npm/@splidejs/splide@4.0.1/dist/js/splide.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function () {
let splide = new Splide('.splide', {
type: 'fade',
rewind: true,
autoplay: true,
interval: 5000,
speed: 1000,
easing: "cubic-bezier(0.42, 0.0, 0.58, 1.0)"
});
splide.mount();
});
</script>
</head>
<body>
<div class="header">
<label>
<span style="font-family: Licorice, sans-serif;font-size: 4em;">Stalactite</span><span style="font-size: 2em;"> ORM</span>
</label>
<nav id="site_nav">
<dl>
<dt><a href="news/">News</a></dt>
<dt><a href="howto/">Getting started</a></dt>
<dt><a href="stalactite-doc/2.0.0">Documentation</a></dt>
<dt>
<a href="https://github.com/tircis/stalactite" title="Fork me on GitHub">
<svg width="1.8em" height="1.8em" viewBox="0 0 40 40" fill="black" class="github-logo">
<path d="M19.9996 4.375C11.1749 4.375 4.02734 11.5226 4.02734 20.3472C4.02734 27.4149 8.59939 33.3845 14.9484 35.5009C15.747 35.6406 16.0464
35.1615 16.0464 34.7422C16.0464 34.3628 16.0265 33.105 16.0265 31.7674C12.0135 32.5061 10.9753 30.7891 10.6558 29.8906C10.4761 29.4314
9.69748 28.0139 9.01866 27.6345C8.45964 27.3351 7.66102 26.5964 8.9987 26.5764C10.2565 26.5564 11.1549 27.7344 11.4544 28.2135C12.8919
30.6293 15.1879 29.9505 16.1063 29.5312C16.2461 28.4931 16.6654 27.7943 17.1246 27.395C13.5707 26.9957 9.85721 25.6181 9.85721
19.5087C9.85721 17.7717 10.4761 16.3342 11.4944 15.2161C11.3346 14.8168 10.7756 13.1797 11.6541 10.9835C11.6541 10.9835 12.9918 10.5642
16.0464 12.6207C17.3242 12.2613 18.6819 12.0816 20.0395 12.0816C21.3971 12.0816 22.7548 12.2613 24.0326 12.6207C27.0872 10.5443 28.4249
10.9835 28.4249 10.9835C29.3034 13.1797 28.7444 14.8168 28.5846 15.2161C29.6029 16.3342 30.2218 17.7517 30.2218 19.5087C30.2218 25.638
26.4883 26.9957 22.9345 27.395C23.5135 27.8941 24.0126 28.8524 24.0126 30.3498C24.0126 32.4861 23.9926 34.2031 23.9926 34.7422C23.9926
35.1615 24.2921 35.6606 25.0907 35.5009C31.3997 33.3845 35.9718 27.395 35.9718 20.3472C35.9718 11.5226 28.8242 4.375 19.9996 4.375Z">
</path>
</svg>
</a>
</dt>
</dl>
</nav>
</div>
<div class="splide" role="group">
<div class="splide__track">
<ul class="slideshow splide__list">
<li class="slide splide__slide">
<img src="outdoor-snow-cold-winter-formation-ice-1008084-pxhere.com.jpg">
<article>
<header><span style="font-family: Licorice, sans-serif;font-size: 4em;">Stalactite</span><span style="font-size: 2em;"> ORM</span></header>
<p>
<code>2.0.0 is out !!</code>
</p>
</article>
</li>
<li class="slide splide__slide">
<img src="landscape-rock-stone-travel-formation-cave-858747-pxhere.com.jpg">
<article>
<header>Non intrusive mapping</header>
<p>
<code>map(Person::getName)</code>
</p>
</article>
</li>
<li class="slide splide__slide">
<img src="Ice-fountain-ice-Ice-cascade-icicle-formation-freezing-1617711-pxhere.com.jpg">
<article>
<header>Visualize entity graph</header>
<p>
<pre style="text-align: left; margin-left: 0">
<code data-language="java" class="language-java">
entityBuilder(Person.class, long.class)
.map(Person::getId).identifier(IdentifierPolicy.afterInsert())
.map(Person::getName)
.mapOneToOne(Person::getHouse, entityBuilder(House.class, long.class)
.map(House::getId).identifier(IdentifierPolicy.afterInsert())
.mapOneToOne(House::getAddress, entityBuilder(Address.class, long.class)
.map(Address::getId).identifier(IdentifierPolicy.afterInsert())
.map(Address::getLocation)
</code>
</pre>
</p>
</article>
</li>
<li class="slide splide__slide">
<img src="formation-canyon-badlands-stalagmite-stalactite-landform-24358-pxhere.com.jpg">
<article>
<header>Keep your domain clean</header>
<p>
<ul style="text-align: left; list-style: disc; margin-left: 2em; margin-right: 2em">
<li>No bytecode enhancement</li>
<li>No default constructor required</li>
<li>Implement business equals()/hashCode()</li>
</ul>
</p>
</article>
</li>
</ul>
</div>
</div>
<div class="article-container">
<article>
<header>Non intrusive mapping</header>
<p>
No annotation nor XML binding is necessary : mapping is defined through <em>method references</em>.
</p>
</article>
<article>
<header>Visualize entity graph</header>
<p>
Thanks to a fluent API, Stalactite lets one define its entity graph, instead of spreading it all over entities by annotation for instance.
</p><p>
Moreover, since it only <em>fetches data eagerly</em>, you know exactly what will be loaded, hence mastering graph inflation.
</p>
</article>
<article>
<header>Keep your domain clean</header>
<ul>
<li>
Stalactite only accesses your properties through reflection : it doesn't require bytecode enhancement libraries, and doesn't have PersistentBag.
</li><li>
You may also keep your business constructor and let Stalactite uses it while fetching data from database.
</li><li>
Your equals/hashCode doesn't need to rely on entity identifier, you're free to implement it with business rules because Stalatite only
relies on equals/hashCode while comparing Collection, which is one of the purpose of their implementation.
</li>
</ul>
</article>
<article>
<header>Database compatibility</header>
<p>
Stalactite is tested against
<ul>
<li>HSQLDB,</li>
<li>H2,</li>
<li>PostgreSQL,</li>
<li>MySQL,</li>
<li>MariaDB</li>
</ul>
</p>
</article>
</div>
</body>
<footer>
<p>
Credits to Guillaume Mary as Art director, Picture finder, Pizza eater, Technical engineer, Beer drinker, Content manager, Story teller, Coffee drinker, Table tennis player, Video game player 😜
</p>
</footer>
</html>