<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://wiki2.linuxformat.ru/skins/common/feed.css?97"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>LXF74-75:Что за штука... - История изменений</title>
		<link>http://wiki2.linuxformat.ru/index.php?title=LXF74-75:%D0%A7%D1%82%D0%BE_%D0%B7%D0%B0_%D1%88%D1%82%D1%83%D0%BA%D0%B0...&amp;action=history</link>
		<description>История изменений этой страницы в вики</description>
		<language>ru</language>
		<generator>MediaWiki 1.11.1</generator>
		<lastBuildDate>Wed, 13 May 2026 21:03:50 GMT</lastBuildDate>
		<item>
			<title>Yaleks: оформление</title>
			<link>http://wiki2.linuxformat.ru/index.php?title=LXF74-75:%D0%A7%D1%82%D0%BE_%D0%B7%D0%B0_%D1%88%D1%82%D1%83%D0%BA%D0%B0...&amp;diff=7526&amp;oldid=prev</link>
			<description>&lt;p&gt;оформление&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 17:15, 5 апреля 2009&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 19:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 19:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;если сохранять Java-объект непосредственно в базе&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;если сохранять Java-объект непосредственно в базе&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;данных, без нудных SQL-запросов и кода JDBC? Вот&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;данных, без нудных SQL-запросов и кода JDBC? Вот&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;тут и нужен Hibernate — он обеспечивает объектно-&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;тут и нужен Hibernate — он обеспечивает объектно-реляционное отображение (ORM — Object&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;реляционное отображение (ORM — Object&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Relational Mapping) между объектом и БД.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Relational Mapping) между объектом и БД.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;;&amp;gt;&amp;gt; Отлично. А он написан медведями-гризли или бурыми медведями?&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;;&amp;gt;&amp;gt; Отлично. А он написан медведями-гризли или бурыми медведями?&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 120:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 119:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;;&amp;gt;&amp;gt; Пожалуй, мне это нравится. Как я могу его опробовать?&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;;&amp;gt;&amp;gt; Пожалуй, мне это нравится. Как я могу его опробовать?&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Вы можете взять его с прилагаемого диска или&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Вы можете взять его с прилагаемого диска или&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;скачать последнюю версию с www.Hibernate.org.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;скачать последнюю версию с &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;http://&lt;/ins&gt;www.Hibernate.org.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Останется только распаковать архив и собрать его&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Останется только распаковать архив и собрать его&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;с помощью Apache Ant (http://ant.apache.org — незаменимый инструмент сборки для Java-разработчика). На Web-сайте вы найдёте более подробные&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;с помощью Apache Ant (http://ant.apache.org — незаменимый инструмент сборки для Java-разработчика). На Web-сайте вы найдёте более подробные&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 136:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 135:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;должно. Он поддерживает несколько API сохранения объектов, так что вы можете выбрать наиболее&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;должно. Он поддерживает несколько API сохранения объектов, так что вы можете выбрать наиболее&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;подходящий. Cтоит также взглянуть на инструмент&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;подходящий. Cтоит также взглянуть на инструмент&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;реляционного отображения TopLink от Oracle (www.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;реляционного отображения TopLink от Oracle (&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;http://&lt;/ins&gt;www.oracle.com/technology/products/ias/toplink/index.html).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;oracle.com/technology/products/ias/toplink/index.html).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Он доступен в составе Oracle Application Server или&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Он доступен в составе Oracle Application Server или&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;отдельно (не бесплатно), и совместим с Oracle или&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;отдельно (не бесплатно), и совместим с Oracle или&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;другими базами данных.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;другими базами данных.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 05 Apr 2009 17:15:11 GMT</pubDate>			<dc:creator>Yaleks</dc:creator>			<comments>http://wiki2.linuxformat.ru/index.php/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:LXF74-75:%D0%A7%D1%82%D0%BE_%D0%B7%D0%B0_%D1%88%D1%82%D1%83%D0%BA%D0%B0...</comments>		</item>
		<item>
			<title>Lockal: Новая: ''Хотите сэкономить время на кодировании запросов к базе данных? Скотт Дуглас (Scott Douglass) подскажет, как ...</title>
			<link>http://wiki2.linuxformat.ru/index.php?title=LXF74-75:%D0%A7%D1%82%D0%BE_%D0%B7%D0%B0_%D1%88%D1%82%D1%83%D0%BA%D0%B0...&amp;diff=5015&amp;oldid=prev</link>
			<description>&lt;p&gt;Новая: ''Хотите сэкономить время на кодировании запросов к базе данных? Скотт Дуглас (Scott Douglass) подскажет, как ...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая статья&lt;/b&gt;&lt;/p&gt;&lt;div&gt;''Хотите сэкономить время на кодировании запросов к базе данных? Скотт Дуглас (Scott Douglass) подскажет, как это сделать.''&lt;br /&gt;
&lt;br /&gt;
;&amp;gt;&amp;gt; Hibernate… то есть спячка… это не то, чем зимой занимаются медведи?&lt;br /&gt;
Так и есть, но вместо долгих часов зимней спячки&lt;br /&gt;
они в это время изобретают новый способ сохранения объектов Java в базе данных.&lt;br /&gt;
;&amp;gt;&amp;gt; Разве в базах данных хранятся объекты, а не данные?&lt;br /&gt;
Да, обычно вы храните свои данные в базе и получаете доступ к ним с помощью специального API. А&lt;br /&gt;
используя объектно-ориентированный язык Java,&lt;br /&gt;
вы бы считывали данные в Java-объект при помощи SQL-запросов. Объектом можно как угодно&lt;br /&gt;
манипулировать, а потом записать данные обратно&lt;br /&gt;
в базу, опять-таки при помощи SQL и JDBC API&lt;br /&gt;
(JDBC — Java Database Connectivity).&lt;br /&gt;
Однако если выключить компьютер, не сохранив&lt;br /&gt;
данные из объекта, то они будут потеряны. Объекты&lt;br /&gt;
Java могут существовать только в виртуальной&lt;br /&gt;
машине Java — Sun не проектировал Java для записи&lt;br /&gt;
на жесткий диск; поэтому объекты не переходят из&lt;br /&gt;
сессии в сессию. Многие люди задумались: а что&lt;br /&gt;
если сохранять Java-объект непосредственно в базе&lt;br /&gt;
данных, без нудных SQL-запросов и кода JDBC? Вот&lt;br /&gt;
тут и нужен Hibernate — он обеспечивает объектно-&lt;br /&gt;
реляционное отображение (ORM — Object&lt;br /&gt;
Relational Mapping) между объектом и БД.&lt;br /&gt;
;&amp;gt;&amp;gt; Отлично. А он написан медведями-гризли или бурыми медведями?&lt;br /&gt;
Пожалуй, надо прояснить ситуацию с медведями…&lt;br /&gt;
&lt;br /&gt;
На самом деле проект разрабатывается замечательными ребятами из JBoss, и лицензирован по&lt;br /&gt;
LGPL.&lt;br /&gt;
;&amp;gt;&amp;gt; Постоянное хранение объектов, хм-м, а разве не для этого предназначалась технология Enterprise Java Beans?&lt;br /&gt;
Enterprise Java Beans (EJBs) — это серверные объекты, которые живут в контейнере в сервере приложений. Hibernate предоставляет ряд преимуществ по сравнению с EJBs, точнее, с их разновидностью, называемой entity beans. Интересной особенностью этих «бобов» является наличие у них&lt;br /&gt;
сохраняемого состояния. Существует два способа&lt;br /&gt;
его сохранения: сохранение, управляемое контейнером (CMP — container managed persistence), при&lt;br /&gt;
котором состоянием бина распоряжается контейнер J2EE (Java 2, Enterprise Edition), и сохранение,&lt;br /&gt;
управляемое бином (BMP — Bean Managed&lt;br /&gt;
Persistence), при котором бин сам контролирует&lt;br /&gt;
свое состояние.&lt;br /&gt;
В отличие от CMP, Hibernate позволяет отображать несколько таблиц на один Java-объект или&lt;br /&gt;
описывать несколько Java-объектов одной таблицей. Аналогичный результат можно получить и&lt;br /&gt;
через BMP, но тогда потребуется самим написать&lt;br /&gt;
всю JDBC-логику внутри бина.&lt;br /&gt;
;&amp;gt;&amp;gt; То есть Java-объекты должны быть записаны особым образом? А не могу я просто сохранить любой объект?&lt;br /&gt;
В Hibernate — можете. Он позволяет сохранять&lt;br /&gt;
практически любой Java-класс, разработанный с&lt;br /&gt;
помощью стандартных объектно-ориентированных&lt;br /&gt;
методов, благодаря чему &amp;quot;срабатывают все сильные стороны Java: наследование (когда один класс&lt;br /&gt;
выводится из другого), композиция (включение&lt;br /&gt;
новых членов) и даже группировка классов в «коллекции». По сути, вы можете разрабатывать Java-приложения, почти не заботясь о том, каким образом Hibernate сохранит ваши объекты.&lt;br /&gt;
;&amp;gt;&amp;gt; И мне не придется писать большой объём тупого JDBC кода?&lt;br /&gt;
Нет — как только вы создадите свой Java-объект&lt;br /&gt;
и определите его отображение, код, который вам&lt;br /&gt;
нужно будет написать для сохранения или восстановления объекта, будет минимальным, по сравнению с JDBC-вызовами и связанной с ними обработкой ошибок.&lt;br /&gt;
;&amp;gt;&amp;gt; Что такое отображение?&lt;br /&gt;
Хороший вопрос. Hibernate должен знать,&lt;br /&gt;
какие таблицы относятся к каким объектам, и для&lt;br /&gt;
этого он использует карту в формате XML. Вы,&lt;br /&gt;
конечно, можете создать один большой XML-файл, содержащий отображение всех ваших объектов, но Hibernate позволяет завести отдельный&lt;br /&gt;
файл для каждого объекта. В этом случае у вас&lt;br /&gt;
будет набор небольших файлов, имеющих чёткое&lt;br /&gt;
назначение.&lt;br /&gt;
;&amp;gt;&amp;gt; Переписать все мои таблицы в формате XML — мороки не меньше, чем наготовить те же JDBC-вызовы…&lt;br /&gt;
Если у вас всего лишь один-два объекта, которые&lt;br /&gt;
вы хотите использовать с Hibernate, то написать&lt;br /&gt;
XML — невеликий труд: формат весьма прост. Для&lt;br /&gt;
случая, когда у вас множество объектов, Hibernate&lt;br /&gt;
позаботился о механизмах автоматической генерации соответствующих файлов.&lt;br /&gt;
;&amp;gt;&amp;gt; Ого! Он может сам создавать свои конфигурационные файлы?&lt;br /&gt;
Может, но вам придётся следовать некоторым правилам при проектировании своих объектов. Ничего&lt;br /&gt;
особо революционного: просто надо предусмотреть&lt;br /&gt;
конструктор по умолчанию и методы доступа&lt;br /&gt;
к полям (get/set). На самом деле Hibernate поставляется с утилитой генерации схемы базы данных&lt;br /&gt;
или шаблона из вашего файла с отображением.&lt;br /&gt;
Это означает (в теории), что если вы создали Javaобъект, который хотите сохранить с помощью&lt;br /&gt;
Hibernate, вы можете воспользоваться утилитами&lt;br /&gt;
для генерации файла отображения и последующей&lt;br /&gt;
генерации из него схемы базы данных.&lt;br /&gt;
;&amp;gt;&amp;gt; Но мне по прежнему нужен какой-нибудь контейнер, так?&lt;br /&gt;
На самом деле нет. В отличие от EJB, которым требуется сервер приложений J2EE (например, JBoss),&lt;br /&gt;
Hibernate не требует никакого специального окружения. Это делает его гораздо более легковесным,&lt;br /&gt;
чем EJBs, и пригодным для автономных&lt;br /&gt;
приложений.&lt;br /&gt;
;&amp;gt;&amp;gt; Не приводит ли к потере производительности то, что Hibernate не использует контейнер?&lt;br /&gt;
Видимо, нет. Печально известно, что EJB работают&lt;br /&gt;
медленно, несмотря на то, что живут внутри своего&lt;br /&gt;
контейнера. Hibernate, хотя и запускается немного&lt;br /&gt;
подольше, считается очень быстрым. Разработчики&lt;br /&gt;
Hibernate утверждают, что он может быть даже быстрее решения с использованием SQL/JDBC, поскольку сгенерированные Hibernate запросы могут содержать кэширование данных и другие оптимизации.&lt;br /&gt;
;&amp;gt;&amp;gt; А если я хочу сделать со своими данными что-нибудь похитрее, но у меня нет первичного ключа для объекта, который надо вытащить?&lt;br /&gt;
Под первичным ключом вы, конечно, понимаете&lt;br /&gt;
индивидуальный идентификатор, заданный для&lt;br /&gt;
каждой записи таблицы. Что ж, как это ни удивительно, но вместо написания SQL запросов и&lt;br /&gt;
выполнения их с помощью JDBC&lt;br /&gt;
вы можете воспользоваться&lt;br /&gt;
собственным объектным языком Hibernate — HQL (Hibernate Query Language).&lt;br /&gt;
На этом языке можно напрямую делать запросы к&lt;br /&gt;
объектам и их свойствам. Запросы выходят более&lt;br /&gt;
компактными, чем их эквивалент в SQL, поскольку&lt;br /&gt;
HQL учитывает отношения, заданные в отображении, и их не надо указывать в самом запросе.&lt;br /&gt;
Hibernate также допускает использование канонического SQL, но разработчики не рекомендуют этого делать.&lt;br /&gt;
;&amp;gt;&amp;gt; Выглядит неплохо, но разве не то же&lt;br /&gt;
самое обещано в новом стандарте EJB3?&lt;br /&gt;
Зачем нам Hibernate, когда Sun скоро будет&lt;br /&gt;
иметь кое-что получше?&lt;br /&gt;
Текущий стандарт EJB не позволяет организовывать объектно-реляционное соответствие, но следующее воплощение стандарта (EJB3) будет включать и стандарт на ORM. Определённо парни из Sun&lt;br /&gt;
знают, что делают, поэтому они и позволили разработчикам Hibernate участвовать в создании стандарта. Hibernate оказал заметное влияние на&lt;br /&gt;
дизайн EJB3.&lt;br /&gt;
&lt;br /&gt;
На самом деле, поскольку Hibernate предполагает&lt;br /&gt;
тот же набор требований к коду, что и entity beans,&lt;br /&gt;
использующие прозрачное сохранение объектов,&lt;br /&gt;
вы сможете использовать Hibernate как управляющий компонент EJB-контейнера — другими словами,&lt;br /&gt;
как первичный интерфейс для взаимодействия с&lt;br /&gt;
бинами во время выполнения. Другой момент в&lt;br /&gt;
пользу Hibernate — то, что он есть уже сейчас, тогда&lt;br /&gt;
как EJB3 ещё предстоит пройти через процесс спецификации JSR (JSR — Java Specification Request).&lt;br /&gt;
Hibernate — образец зрелой технологии, он&lt;br /&gt;
хорошо протестирован и в&lt;br /&gt;
большей или меньшей&lt;br /&gt;
степени представляет собой промышленный стандарт.&lt;br /&gt;
&lt;br /&gt;
;&amp;gt;&amp;gt; Пожалуй, мне это нравится. Как я могу его опробовать?&lt;br /&gt;
Вы можете взять его с прилагаемого диска или&lt;br /&gt;
скачать последнюю версию с www.Hibernate.org.&lt;br /&gt;
Останется только распаковать архив и собрать его&lt;br /&gt;
с помощью Apache Ant (http://ant.apache.org — незаменимый инструмент сборки для Java-разработчика). На Web-сайте вы найдёте более подробные&lt;br /&gt;
инструкции.&lt;br /&gt;
;&amp;gt;&amp;gt; Что мне делать, если сама идея отображения мне подходит, а Hibernate — нет? Есть ли альтернативы?&lt;br /&gt;
Существует множество различных инструментов&lt;br /&gt;
объектно-реляционного отображения. Какой вы&lt;br /&gt;
выберете, будет зависеть от вашей ситуации.&lt;br /&gt;
Сравнение некоторых из них приведено здесь:&lt;br /&gt;
http://c2.com/cgi/wiki?ObjectRelationalToolComparison.&lt;br /&gt;
Другой популярный ORM-продукт — Object&lt;br /&gt;
Relational Bridge (OJB) из проекта Apache&lt;br /&gt;
(http://db.apache.org/ojb). Он несколько новее&lt;br /&gt;
Hibernate, но поскольку это продукт Apache, проблем со стабильностью и поддержкой быть не&lt;br /&gt;
должно. Он поддерживает несколько API сохранения объектов, так что вы можете выбрать наиболее&lt;br /&gt;
подходящий. Cтоит также взглянуть на инструмент&lt;br /&gt;
реляционного отображения TopLink от Oracle (www.&lt;br /&gt;
oracle.com/technology/products/ias/toplink/index.html).&lt;br /&gt;
Он доступен в составе Oracle Application Server или&lt;br /&gt;
отдельно (не бесплатно), и совместим с Oracle или&lt;br /&gt;
другими базами данных.&lt;/div&gt;</description>
			<pubDate>Fri, 11 Jul 2008 14:00:34 GMT</pubDate>			<dc:creator>Lockal</dc:creator>			<comments>http://wiki2.linuxformat.ru/index.php/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:LXF74-75:%D0%A7%D1%82%D0%BE_%D0%B7%D0%B0_%D1%88%D1%82%D1%83%D0%BA%D0%B0...</comments>		</item>
	</channel>
</rss>