<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>
	Komentarze do: Czy automatyczne tworzenie bazy przez Hibernate jest dobre?	</title>
	<atom:link href="https://nullpointerexception.pl/czy-automatyczne-tworzenie-bazy-przez-hibernate-jest-dobre/feed/" rel="self" type="application/rss+xml" />
	<link>https://nullpointerexception.pl/czy-automatyczne-tworzenie-bazy-przez-hibernate-jest-dobre/</link>
	<description>Blog o programowaniu w Javie</description>
	<lastBuildDate>Fri, 04 Aug 2023 17:06:21 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>
	<item>
		<title>
		Autor: Mateusz Dąbrowski		</title>
		<link>https://nullpointerexception.pl/czy-automatyczne-tworzenie-bazy-przez-hibernate-jest-dobre/#comment-1986</link>

		<dc:creator><![CDATA[Mateusz Dąbrowski]]></dc:creator>
		<pubDate>Sun, 09 Aug 2020 08:13:25 +0000</pubDate>
		<guid isPermaLink="false">https://nullpointerexception.pl/?p=2662#comment-1986</guid>

					<description><![CDATA[W odpowiedzi do &lt;a href=&quot;https://nullpointerexception.pl/czy-automatyczne-tworzenie-bazy-przez-hibernate-jest-dobre/#comment-1985&quot;&gt;Pawel&lt;/a&gt;.

To zależy od projektu. Właściwie wypróbowałem wszystkie możliwe opcje w różnych projektach. Tworzenie changesetów w XMLu stosowałem w projekcie, który był developowany w Postgresie, a na produkcji działał na Mssql. I generalnie działało to całkiem dobrze, nie było większych problemów. Taka była specyfika tego projektu (ale to raczej rzadkość).

Słyszałem też, że inni stosują XMLa w projektach z jednym silnikiem bazy. Oczywiście wygodnie jest pisać wszystko w sqlu i tak w większości przypadków to robię (jak korzystam z Oracla czy Mssql, to raczej nie przewiduję migracji bazy).

Oczywiście zachodzi ryzyko, że kiedyś będziesz chciał zmienić silnik bazy, wtedy będziesz musiał z migrować bazę (i to jest normalne), ale pytanie, czy też warto migrować wszystkie changesety? Chyba tak, jeśli chcemy, żeby developerzy mogli odpalić projekt lokalnie od zera (bez zabawy w przenoszenie bazy z np. jakiegoś serwera testowego). I generalnie taka migracja changesetów jest bardzo trudna, bo hashe changesetów zapisują się we wszystkich bazach i generalnie trzeb kombinować jak to wszystko ogarnąć. Ale zmiany silnika zdarzają się raczej rzadko, więc nie jest to aż tak straszny scenariusz.

Potencjalnie jest wiele problemów związanych ze stosowaniem sql w changesetach...]]></description>
			<content:encoded><![CDATA[<p>W odpowiedzi do <a href="https://nullpointerexception.pl/czy-automatyczne-tworzenie-bazy-przez-hibernate-jest-dobre/#comment-1985">Pawel</a>.</p>
<p>To zależy od projektu. Właściwie wypróbowałem wszystkie możliwe opcje w różnych projektach. Tworzenie changesetów w XMLu stosowałem w projekcie, który był developowany w Postgresie, a na produkcji działał na Mssql. I generalnie działało to całkiem dobrze, nie było większych problemów. Taka była specyfika tego projektu (ale to raczej rzadkość).</p>
<p>Słyszałem też, że inni stosują XMLa w projektach z jednym silnikiem bazy. Oczywiście wygodnie jest pisać wszystko w sqlu i tak w większości przypadków to robię (jak korzystam z Oracla czy Mssql, to raczej nie przewiduję migracji bazy).</p>
<p>Oczywiście zachodzi ryzyko, że kiedyś będziesz chciał zmienić silnik bazy, wtedy będziesz musiał z migrować bazę (i to jest normalne), ale pytanie, czy też warto migrować wszystkie changesety? Chyba tak, jeśli chcemy, żeby developerzy mogli odpalić projekt lokalnie od zera (bez zabawy w przenoszenie bazy z np. jakiegoś serwera testowego). I generalnie taka migracja changesetów jest bardzo trudna, bo hashe changesetów zapisują się we wszystkich bazach i generalnie trzeb kombinować jak to wszystko ogarnąć. Ale zmiany silnika zdarzają się raczej rzadko, więc nie jest to aż tak straszny scenariusz.</p>
<p>Potencjalnie jest wiele problemów związanych ze stosowaniem sql w changesetach&#8230;</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Pawel		</title>
		<link>https://nullpointerexception.pl/czy-automatyczne-tworzenie-bazy-przez-hibernate-jest-dobre/#comment-1985</link>

		<dc:creator><![CDATA[Pawel]]></dc:creator>
		<pubDate>Sat, 08 Aug 2020 18:44:59 +0000</pubDate>
		<guid isPermaLink="false">https://nullpointerexception.pl/?p=2662#comment-1985</guid>

					<description><![CDATA[Mam pytanie o Liquibase, jak to wyglada w praktyce - pisze się te skrypty w tej specyficznej składni (XML, json), czy może tworzy się tylko ten „główny” plik konfiguracyjny a create lub ladowanie danych normalnie w sqlu?]]></description>
			<content:encoded><![CDATA[<p>Mam pytanie o Liquibase, jak to wyglada w praktyce &#8211; pisze się te skrypty w tej specyficznej składni (XML, json), czy może tworzy się tylko ten „główny” plik konfiguracyjny a create lub ladowanie danych normalnie w sqlu?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Mateusz Dąbrowski		</title>
		<link>https://nullpointerexception.pl/czy-automatyczne-tworzenie-bazy-przez-hibernate-jest-dobre/#comment-1977</link>

		<dc:creator><![CDATA[Mateusz Dąbrowski]]></dc:creator>
		<pubDate>Tue, 04 Aug 2020 06:41:45 +0000</pubDate>
		<guid isPermaLink="false">https://nullpointerexception.pl/?p=2662#comment-1977</guid>

					<description><![CDATA[W odpowiedzi do &lt;a href=&quot;https://nullpointerexception.pl/czy-automatyczne-tworzenie-bazy-przez-hibernate-jest-dobre/#comment-1976&quot;&gt;Korges&lt;/a&gt;.

Dzięki <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" />]]></description>
			<content:encoded><![CDATA[<p>W odpowiedzi do <a href="https://nullpointerexception.pl/czy-automatyczne-tworzenie-bazy-przez-hibernate-jest-dobre/#comment-1976">Korges</a>.</p>
<p>Dzięki 😉</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Korges		</title>
		<link>https://nullpointerexception.pl/czy-automatyczne-tworzenie-bazy-przez-hibernate-jest-dobre/#comment-1976</link>

		<dc:creator><![CDATA[Korges]]></dc:creator>
		<pubDate>Tue, 04 Aug 2020 06:19:59 +0000</pubDate>
		<guid isPermaLink="false">https://nullpointerexception.pl/?p=2662#comment-1976</guid>

					<description><![CDATA[Świetna wartość merytoryczna zarówno bloga jak i kanału YT.
Oby jak najwięcej materiałów.
Dziękuję :)]]></description>
			<content:encoded><![CDATA[<p>Świetna wartość merytoryczna zarówno bloga jak i kanału YT.<br />
Oby jak najwięcej materiałów.<br />
Dziękuję 🙂</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Mateusz Dąbrowski		</title>
		<link>https://nullpointerexception.pl/czy-automatyczne-tworzenie-bazy-przez-hibernate-jest-dobre/#comment-1892</link>

		<dc:creator><![CDATA[Mateusz Dąbrowski]]></dc:creator>
		<pubDate>Sat, 11 Jul 2020 20:35:37 +0000</pubDate>
		<guid isPermaLink="false">https://nullpointerexception.pl/?p=2662#comment-1892</guid>

					<description><![CDATA[W odpowiedzi do &lt;a href=&quot;https://nullpointerexception.pl/czy-automatyczne-tworzenie-bazy-przez-hibernate-jest-dobre/#comment-1891&quot;&gt;segfault&lt;/a&gt;.

Dzięki ;)]]></description>
			<content:encoded><![CDATA[<p>W odpowiedzi do <a href="https://nullpointerexception.pl/czy-automatyczne-tworzenie-bazy-przez-hibernate-jest-dobre/#comment-1891">segfault</a>.</p>
<p>Dzięki 😉</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: segfault		</title>
		<link>https://nullpointerexception.pl/czy-automatyczne-tworzenie-bazy-przez-hibernate-jest-dobre/#comment-1891</link>

		<dc:creator><![CDATA[segfault]]></dc:creator>
		<pubDate>Sat, 11 Jul 2020 20:06:49 +0000</pubDate>
		<guid isPermaLink="false">https://nullpointerexception.pl/?p=2662#comment-1891</guid>

					<description><![CDATA[Hej! Bardzo lubię czytać Twoje wpisy, kiedy tylko się pojawiają. Piszesz zazwyczaj spójnie, na temat, bez offtopów - cenię to sobie, i myślę, że inni czytelnicy również. Pisz więcej, bo z całą pewnością Twoja praca nie pozostaje niedoceniana ;) Pozdrowienia!]]></description>
			<content:encoded><![CDATA[<p>Hej! Bardzo lubię czytać Twoje wpisy, kiedy tylko się pojawiają. Piszesz zazwyczaj spójnie, na temat, bez offtopów &#8211; cenię to sobie, i myślę, że inni czytelnicy również. Pisz więcej, bo z całą pewnością Twoja praca nie pozostaje niedoceniana 😉 Pozdrowienia!</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Mateusz Dąbrowski		</title>
		<link>https://nullpointerexception.pl/czy-automatyczne-tworzenie-bazy-przez-hibernate-jest-dobre/#comment-1886</link>

		<dc:creator><![CDATA[Mateusz Dąbrowski]]></dc:creator>
		<pubDate>Fri, 10 Jul 2020 14:07:45 +0000</pubDate>
		<guid isPermaLink="false">https://nullpointerexception.pl/?p=2662#comment-1886</guid>

					<description><![CDATA[W odpowiedzi do &lt;a href=&quot;https://nullpointerexception.pl/czy-automatyczne-tworzenie-bazy-przez-hibernate-jest-dobre/#comment-1885&quot;&gt;RSWRC&lt;/a&gt;.

&lt;blockquote&gt;No to w końcu poprawne czy nie? <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> To nie jest problem ani wina Hibernate i mechanizmu hbm2ddl, że dev nie dodał @JoinColumn. Skąd biedny Hibernate ma wiedzieć którą kolumnę użyć jako FK bez anotacji @JoinColumn?&lt;/blockquote&gt; Trudno powiedzieć, nie wiem, czy ktoś zapomniał tej adnotacji, czy zrobił tak celowo <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" />

Tak wiem, że można nadawać nazwy indeksom i kluczom obcym, tylko czy ktoś o tym pamięta?

Co do reszty, to dzięki za podzielenie się swoimi doświadczeniami <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" />]]></description>
			<content:encoded><![CDATA[<p>W odpowiedzi do <a href="https://nullpointerexception.pl/czy-automatyczne-tworzenie-bazy-przez-hibernate-jest-dobre/#comment-1885">RSWRC</a>.</p>
<blockquote><p>No to w końcu poprawne czy nie? 😉 To nie jest problem ani wina Hibernate i mechanizmu hbm2ddl, że dev nie dodał @JoinColumn. Skąd biedny Hibernate ma wiedzieć którą kolumnę użyć jako FK bez anotacji @JoinColumn?</p></blockquote>
<p> Trudno powiedzieć, nie wiem, czy ktoś zapomniał tej adnotacji, czy zrobił tak celowo 😉</p>
<p>Tak wiem, że można nadawać nazwy indeksom i kluczom obcym, tylko czy ktoś o tym pamięta?</p>
<p>Co do reszty, to dzięki za podzielenie się swoimi doświadczeniami 😉</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: RSWRC		</title>
		<link>https://nullpointerexception.pl/czy-automatyczne-tworzenie-bazy-przez-hibernate-jest-dobre/#comment-1885</link>

		<dc:creator><![CDATA[RSWRC]]></dc:creator>
		<pubDate>Fri, 10 Jul 2020 13:55:53 +0000</pubDate>
		<guid isPermaLink="false">https://nullpointerexception.pl/?p=2662#comment-1885</guid>

					<description><![CDATA[&quot;Niepoprawne Mapowanie&quot; - &quot;z punktu widzenia Hibernate’a oba mapowania są poprawne.&quot;

No to w końcu poprawne czy nie? ;-) To nie jest problem ani wina Hibernate i mechanizmu hbm2ddl, że dev nie dodał @JoinColumn. Skąd biedny Hibernate ma wiedzieć którą kolumnę użyć jako FK bez anotacji @JoinColumn? :P

&quot;Hibernate nadaje im losowe nazwy np. „FK2VL1PWD258E41JNAM1CNC3VNA”. &quot; 
Rozwiązanie: 
https://docs.oracle.com/javaee/7/api/javax/persistence/Index.html#name--
https://docs.oracle.com/javaee/7/api/javax/persistence/ForeignKey.html#name--

Już gdzieś mieliśmy tą dyskusję. Jestem fanem jak najdokładniejszego opisania schematu za pomocą annotacji  które dają JPA/Hibernate. Po to, żeby m.in. takich problemów nie mieć. 

Osobiście w projektach używamy update + skrypty migracyjne (jeśli konieczne) wywoływane ręcznie + automat przy każdym starcie aplikacji dropuje wszystkie widoki i zakłada na nowo z odrębnego skryptu. Niektóre projekty tak już chodzą 8 lat. Skrypty migracyjne wersjonowane razem z WARem z releasu w VCSie. Zero problemów :P]]></description>
			<content:encoded><![CDATA[<p>&#8222;Niepoprawne Mapowanie&#8221; &#8211; &#8222;z punktu widzenia Hibernate’a oba mapowania są poprawne.&#8221;</p>
<p>No to w końcu poprawne czy nie? 😉 To nie jest problem ani wina Hibernate i mechanizmu hbm2ddl, że dev nie dodał @JoinColumn. Skąd biedny Hibernate ma wiedzieć którą kolumnę użyć jako FK bez anotacji @JoinColumn? 😛</p>
<p>&#8222;Hibernate nadaje im losowe nazwy np. „FK2VL1PWD258E41JNAM1CNC3VNA”. &#8221;<br />
Rozwiązanie:<br />
<a href="https://docs.oracle.com/javaee/7/api/javax/persistence/Index.html#name--" rel="nofollow ugc">https://docs.oracle.com/javaee/7/api/javax/persistence/Index.html#name&#8211;</a><br />
<a href="https://docs.oracle.com/javaee/7/api/javax/persistence/ForeignKey.html#name--" rel="nofollow ugc">https://docs.oracle.com/javaee/7/api/javax/persistence/ForeignKey.html#name&#8211;</a></p>
<p>Już gdzieś mieliśmy tą dyskusję. Jestem fanem jak najdokładniejszego opisania schematu za pomocą annotacji  które dają JPA/Hibernate. Po to, żeby m.in. takich problemów nie mieć. </p>
<p>Osobiście w projektach używamy update + skrypty migracyjne (jeśli konieczne) wywoływane ręcznie + automat przy każdym starcie aplikacji dropuje wszystkie widoki i zakłada na nowo z odrębnego skryptu. Niektóre projekty tak już chodzą 8 lat. Skrypty migracyjne wersjonowane razem z WARem z releasu w VCSie. Zero problemów 😛</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Mateusz Dąbrowski		</title>
		<link>https://nullpointerexception.pl/czy-automatyczne-tworzenie-bazy-przez-hibernate-jest-dobre/#comment-1881</link>

		<dc:creator><![CDATA[Mateusz Dąbrowski]]></dc:creator>
		<pubDate>Thu, 09 Jul 2020 16:30:10 +0000</pubDate>
		<guid isPermaLink="false">https://nullpointerexception.pl/?p=2662#comment-1881</guid>

					<description><![CDATA[W odpowiedzi do &lt;a href=&quot;https://nullpointerexception.pl/czy-automatyczne-tworzenie-bazy-przez-hibernate-jest-dobre/#comment-1880&quot;&gt;Pawel&lt;/a&gt;.

Jasne, jak wrócę do nagrywania to pomyślę o tym <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" />]]></description>
			<content:encoded><![CDATA[<p>W odpowiedzi do <a href="https://nullpointerexception.pl/czy-automatyczne-tworzenie-bazy-przez-hibernate-jest-dobre/#comment-1880">Pawel</a>.</p>
<p>Jasne, jak wrócę do nagrywania to pomyślę o tym 😉</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Pawel		</title>
		<link>https://nullpointerexception.pl/czy-automatyczne-tworzenie-bazy-przez-hibernate-jest-dobre/#comment-1880</link>

		<dc:creator><![CDATA[Pawel]]></dc:creator>
		<pubDate>Thu, 09 Jul 2020 16:17:52 +0000</pubDate>
		<guid isPermaLink="false">https://nullpointerexception.pl/?p=2662#comment-1880</guid>

					<description><![CDATA[Hej, fajny artykuł. Może dałbyś radę zrobić filmik jak to wszystko skonfigurować na jakimś przykładzie?]]></description>
			<content:encoded><![CDATA[<p>Hej, fajny artykuł. Może dałbyś radę zrobić filmik jak to wszystko skonfigurować na jakimś przykładzie?</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
