Изящные способы обработать представления базы данных о в спящем режиме объекты?

Попробуйте это

 String time = "22:35";

try {
     SimpleDateFormat sdf = new SimpleDateFormat("H:mm");
     Date dateObj = sdf.parse(time);
    System.out.println(dateObj);
    System.out.println(new SimpleDateFormat("K:mm").format(dateObj));
} catch (final ParseException e) {
    e.printStackTrace();
}

Найдите эту ссылку http://developer.android.com/reference/java/text/SimpleDateFormat.html

26
задан Roland Ewald 26 May 2009 в 13:42
поделиться

4 ответа

Hibernate не будет автоматически создавать представления для вас, поскольку каждый диалект поддерживает только ограниченное подмножество языка определения данных (DDL) базовой базы данных. По сути, он поддерживает достаточно DDL для генерации рабочей схемы, но недостаточно для обработки создания «дополнительных» объектов, таких как представления.

Однако еще не все потеряно. Hibernate действительно дает вам возможность создавать (и удалять) дополнительные объекты базы данных самостоятельно в файлах сопоставления XML, и эти объекты могут быть привязаны к определенному диалекту. Например, у меня могло бы быть такое отображение:

<hibernate-mapping>
  <class name='com.mycompany.myproduct.Customer' table='tbl_customer'>
    <id name='id' column='customer_id'>
      <generator class='native'/>
    </id>
    <property name='name' length='50' unique='true' not-null='true' />
  </class>

  <database-object>
    <create>create or replace view read_only_cust...</create>
    <drop>drop view read_only_cust</drop>
    <dialect-scope name='org.hibernate.dialect.Oracle9Dialect' />
  </database-object>
</hibernate-mapping>

Вы можете создавать любые дополнительные представления, которые захотите, добавляя дополнительные разделы «объект базы данных». Вы должны сами написать SQL (DDL) для каждой базы данных, которую хотите поддерживать, но поскольку они привязаны к диалекту,

22
ответ дан 28 November 2019 в 07:40
поделиться

Что вы подразумеваете под «создать представление»? Я знаю, что это означает, из чистого контекста БД, но вы имеете в виду не это, верно?

Вы можете либо сопоставить новые классы Java с теми же таблицами, чтобы создать «представление», либо использовать HQL для выбора подмножества столбцов, отображаемых другими постоянными классами.

HTH

0
ответ дан 28 November 2019 в 07:40
поделиться

Можете ли вы объявить представления непосредственно в базе данных? Затем вы можете просто выбирать прямо из представлений. Взгляните на главу 10.4.4 руководства Hibernate

, которая должна позволить вам выбрать SELECT из представления базы данных и заставить Hibernate автоматически переносить данные в ваши объекты.

Конечно, представление не делает ' т принимать любые параметры. Предполагается, что Hibernate 3 поддерживает хранимые процедуры, но я использовал это.

0
ответ дан 28 November 2019 в 07:40
поделиться

Была та же проблема, но в документации к гибернации было найдено следующее решение:

Нет никакой разницы между представлением и базовая таблица для Hibernate отображение. Это прозрачно на уровень базы данных, хотя некоторые СУБД делают не поддерживают представления должным образом, особенно с обновлениями. Иногда ты хочешь использовать представление, но вы не можете его создать в базе данных (т.е. с устаревшей схема). В этом случае вы можете сопоставить неизменяемая и доступная только для чтения сущность в данное выражение подзапроса SQL:

<class name="Summary">
    <subselect>
        select item.name, max(bid.amount), count(*)
        from item
        join bid on bid.item_id = item.id
        group by item.name
    </subselect>
    <synchronize table="item"/>
    <synchronize table="bid"/>
    <id name="name"/>
    ...
</class>

https://docs.jboss.org/hibernate/stable/core/manual/en-US/html_single/#mapping-declaration

12
ответ дан 28 November 2019 в 07:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: