powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / hibernate и postgresql
14 сообщений из 14, страница 1 из 1
hibernate и postgresql
    #37660152
amigaboy_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создал базу данных в PostgreSQL с локалью ru_RU.UTF8. Если я запускаю sql-скрипты с insert'ами с русскими строками из Eclipse - в базу записывается и считывается из нее правильные значения.

Если я записываю DTO-объект через Hibernate, то в базу попадает каша из двухбайтовых последовательностей. По-крайней мере так она отображается. Что можете подсказать?
...
Рейтинг: 0 / 0
hibernate и postgresql
    #37660209
Фотография schwa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ввиду того, что телепаты ушли в бессрочный отпуск, предлагаю опубликовать здесь код того, что вы пытаетесь засунуть в базу через хайбернейт.
...
Рейтинг: 0 / 0
hibernate и postgresql
    #37660967
pasha701
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
amigaboy_Что можете подсказать?Менять
Код: java
1.
hibernate.connection.charSet
...
Рейтинг: 0 / 0
hibernate и postgresql
    #37661261
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
amigaboy_Создал базу данных в PostgreSQL с локалью ru_RU.UTF8. Если я запускаю sql-скрипты с insert'ами с русскими строками из Eclipse - в базу записывается и считывается из нее правильные значения.

Если я записываю DTO-объект через Hibernate, то в базу попадает каша из двухбайтовых последовательностей. По-крайней мере так она отображается. Что можете подсказать?

А покажи пример DTO
...
Рейтинг: 0 / 0
hibernate и postgresql
    #37661748
Фотография grasoff.net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне тоже ченить покажите )
...
Рейтинг: 0 / 0
hibernate и postgresql
    #37661844
amigaboy_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dto, самый обычный - поля, геттеры, сеттеры и общий суперкласс CommonDTO, который возвращает ID.
...
Рейтинг: 0 / 0
hibernate и postgresql
    #37661851
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
amigaboy_,
обычно если бинарные данные в таблице значит хибер сериализует объект, а он его по идее мапить должен. Значит проблема в объекте или хитрой настройки мапинга. Без показа и того и другого сложно понять в чем проблема. Обычно там всё предельно просто. :)
...
Рейтинг: 0 / 0
hibernate и postgresql
    #37663590
amigaboy_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Итак.

DTO такого вида:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
@Entity
@Table(schema="common", name="insagent")
public class Insagent extends CommonDTO implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	private Integer id;

	private


Код, который пишет в базу:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
@EJB
private CommonEJBLocal common;
	
private Insagent agent;
	
public void doSaveAgent() {
	if (agent != null) {
		agent.setId(getNextDTOId(common, Insagent.class));
		common.update(agent);
			
		doBackButton();
	}
}


Кусок из EJB с методом update:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
@Stateless(mappedName = "ejb/PolisCommonEJB")
@SuppressWarnings("unchecked")
public class CommonEJB implements CommonEJBLocal {
	@PersistenceContext(unitName="VACJPA")
	private EntityManager em;
	
    public CommonEJB() { }

...поскипано...
	
    public void update(CommonDTO dto) {
        em.merge(dto);
    }
...
Рейтинг: 0 / 0
hibernate и postgresql
    #37663829
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
amigaboy_,

а как ты просматриваешь вставленные данные?
...
Рейтинг: 0 / 0
hibernate и postgresql
    #37664053
amigaboy_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GregTkamigaboy_,

а как ты просматриваешь вставленные данные?select'ом EntityManager'а
...
Рейтинг: 0 / 0
hibernate и postgresql
    #37664406
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
amigaboy_,
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
             version="1.0">

    <persistence-unit name="goodUnit" transaction-type="JTA">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <jta-data-source>java:/GoodDS</jta-data-source>
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
            <property name="hibernate.hbm2ddl.auto" value="update"/>
            <!--<property name="hibernate.show_sql" value="true"/>-->
            <!--<property name="hibernate.format_sql" value="true"/>-->
            <property name="hibernate.transaction.manager_lookup_class"
                      value="org.hibernate.transaction.JBossTransactionManagerLookup"/>
            <property name="hibernate.default_schema" value="public"/>
        </properties>
    </persistence-unit>

</persistence>



Это мой persistence.xml, JBoss Datasource прописан без указания кодировки. Использую драйвер postgresql-9.0-801.jdbc4.jar. Сама БД в UTF-8.

То что вы показали практически идентично что и у меня, может в этих мелких настройках дело? Кстати у вас какая версия PostgreSQL?
У меня 9.0.3
...
Рейтинг: 0 / 0
hibernate и postgresql
    #37664407
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE DATABASE took_db
  WITH OWNER = tooker
       ENCODING = 'UTF8'
       TABLESPACE = pg_default
       LC_COLLATE = 'C'
       LC_CTYPE = 'C'
       CONNECTION LIMIT = -1;



Ещё вот так у меня создана БД.
...
Рейтинг: 0 / 0
hibernate и postgresql
    #37666253
amigaboy_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может проблема быть в том, что сама база создана как в предыдущем посте, и jsf тоже работает в UTF-8. Т.е. в бине строка из inputtext хранится в юникоде, поэтому в базу пишутся двухбайтовые последовательности. Но сама база тоже создана в UTF-8. И получается, что пишется UTF-8 поверх UTF-8.

Как-то так. У кого-нить есть мысли на этот счет?
...
Рейтинг: 0 / 0
hibernate и postgresql
    #37666458
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
amigaboy_,

Сильно в этом сомневаюсь, но у вас из того что я показал сколько совпадений и сколько различий? Я эти строки взял из проекта где юзается EJB3 + JSF(Seamframework), у меня таких проблем не было, хотя я postgres юзаю где только можно.
Надо идти методом исключения:
Сначала в классе явно создать объект и сохранить в бд, и посмотреть что получится. Потом тоже самое уже сделать из JSF формы и сохранить в бд. Так можно будет точно увидеть кто портит.

Покажите настройку JSF в faces-config.xml и web.xml
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / hibernate и postgresql
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]