[RESOLVIDO] Erro ao executar select postgres + hibernate + jpa

2 respostas
Dalvao

Boa noite.

Pessoal estou com problemas ao executar consulta. Qualquer ajuda é bem vinda.

Vejam código de erro.

Caused by: org.postgresql.util.PSQLException: Objetos Grandes não podem ser usados no modo de efetivação automática (auto-commit).

at org.postgresql.largeobject.LargeObjectManager.open(LargeObjectManager.java:200)

at org.postgresql.largeobject.LargeObjectManager.open(LargeObjectManager.java:172)

at org.postgresql.jdbc2.AbstractJdbc2BlobClob.(AbstractJdbc2BlobClob.java:47)

at org.postgresql.jdbc2.AbstractJdbc2Blob.(AbstractJdbc2Blob.java:21)

at org.postgresql.jdbc3.AbstractJdbc3Blob.(AbstractJdbc3Blob.java:19)

at org.postgresql.jdbc4.AbstractJdbc4Blob.(AbstractJdbc4Blob.java:20)

at org.postgresql.jdbc4.Jdbc4Blob.(Jdbc4Blob.java:20)

at org.postgresql.jdbc4.Jdbc4ResultSet.getBlob(Jdbc4ResultSet.java:52)

at org.postgresql.jdbc2.AbstractJdbc2ResultSet.getBlob(AbstractJdbc2ResultSet.java:337)

at org.hibernate.type.ByteArrayBlobType.get(ByteArrayBlobType.java:87)

at org.hibernate.type.AbstractLobType.nullSafeGet(AbstractLobType.java:46)

at org.hibernate.type.AbstractType.hydrate(AbstractType.java:105)

at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2114)

at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1404)

at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1332)

at org.hibernate.loader.Loader.getRow(Loader.java:1230)

at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:603)

at org.hibernate.loader.Loader.doQuery(Loader.java:724)

at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)

at org.hibernate.loader.Loader.doList(Loader.java:2232)

2 Respostas

drsmachado

Cadê os códigos e os xmls?

Dalvao

Bem, estão envolvidas duas classes Parceiro e Imagem.

class Parceiro

@Entity
public class Parceiro extends Bean {

@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="parceiro_seq")
@SequenceGenerator(name="parceiro_seq", sequenceName="parceiro_seq", allocationSize=1, initialValue=1)
private Integer id;

@ManyToOne(cascade=CascadeType.ALL)
private Imagem imagem;

    get and set;

}

class Imagem

@Entity
public class Imagem {

@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="imagem_seq")
@SequenceGenerator(name="imagem_seq", sequenceName="imagem_seq", allocationSize=1, initialValue=1)
private Long id;

@Lob
private byte[] dados;

get and set;
}

persistence.xml

<?xml version="1.0" encoding="UTF-8"?> org.hibernate.ejb.HibernatePersistence

aplication.properties

database.showSql=true
database.generateDdl=true
database.dialect=org.hibernate.dialect.PostgreSQLDialect
database.driver=org.postgresql.Driver
database.url=jdbc:postgresql://localhost/projeto
database.username=postgres
database.password=123456

context.xml

<?xml version="1.0" encoding="UTF-8"?>

<context:property-placeholder location=“classpath:application.properties”/>
<context:component-scan base-package=“br.com.projeto” />
<tx:annotation-driven transaction-manager=“transactionManager” />

<bean id="entityManagerFactory"  
     class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">  
     <property name="persistenceUnitName" value="projeto"/>  
     <property name="dataSource" ref="dataSource" />  
     <property name="jpaVendorAdapter">  
         <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">  
             <property name="databasePlatform" value="${database.dialect}"/>  
             <property name="showSql" value="${database.showSql}" />  
             <property name="generateDdl" value="${database.generateDdl}" />  
         </bean>  
     </property>  
 </bean>

 <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="close">  
    <property name="driverClassName" value="${database.driver}"/>  
    <property name="url" value="${database.url}"/>  
    <property name="username" value="${database.username}"/>  
    <property name="password" value="${database.password}"/>  
</bean>  

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
	<property name="entityManagerFactory" ref="entityManagerFactory"></property>
</bean>

<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
Criado 24 de junho de 2011
Ultima resposta 24 de jun. de 2011
Respostas 2
Participantes 2