2016-11-28 94 views
0

所以,我重新安裝操作系統,現在我有這樣的例外: javax.persistence.RollbackException:錯誤,同時提交事務javax.persistence.RollbackException:錯誤,同時提交事務

我persistance.xml:

<persistence-unit name="BookUnit"> 
    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> 
    <class>Entities.BooksEntity</class> 
    <properties> 
     <property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5432/postgres"/> 
     <property name="hibernate.connection.driver_class" value="org.postgresql.Driver"/> 
     <property name="hibernate.connection.username" value="admin"/> 
     <property name="hibernate.connection.password" value="admin"/> 
     <property name="hibernate.archive.autodetection" value="class"/> 
     <property name="hibernate.show_sql" value="true"/> 
     <property name="hibernate.format_sql" value="true"/> 
     <property name="hbm2ddl.auto" value="update"/> 
    </properties> 
</persistence-unit> 

BookEntity:

@Entity 
@Table(name = "books", schema = "public", catalog = "postgres") 
public class BooksEntity { 
private int id; 
private String title; 
private String description; 

@Id 
@Column(name = "id") 
public int getId() { 
    return id; 
} 

public void setId(int id) { 
    this.id = id; 
} 

@Basic 
@Column(name = "title") 
public String getTitle() { 
    return title; 
} 

public void setTitle(String title) { 
    this.title = title; 
} 

@Basic 
@Column(name = "description") 
public String getDescription() { 
    return description; 
} 

public void setDescription(String description) { 
    this.description = description; 
} 
} 

測試:

public class test { 
@Test 
public void test_db(){ 
    BooksEntity book = new BooksEntity(); 
    book.setDescription("Well this fine now"); 
    book.setTitle("BOOOK"); 
    EntityManager em = Persistence.createEntityManagerFactory("BookUnit").createEntityManager(); 
    em.getTransaction().begin(); 
    em.persist(book); 
    em.getTransaction().commit(); 
    em.close(); 
} 
} 

錯誤日誌(水溼粘貼代碼正常):https://www.dropbox.com/s/28xyvh2s3o0xr6v/Log.txt?dl=0

v 28, 2016 4:24:47 PM org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation 
INFO: HHH000204: Processing PersistenceUnitInfo [ 
    name: BookUnit 
     ...] 
     Nov 28, 2016 4:24:48 PM org.hibernate.Version logVersion 
     INFO: HHH000412: Hibernate Core {5.2.4.Final} 
     Nov 28, 2016 4:24:48 PM org.hibernate.cfg.Environment <clinit> 
     INFO: HHH000206: hibernate.properties not found 
     Nov 28, 2016 4:24:48 PM org.hibernate.cfg.Environment buildBytecodeProvider 
     INFO: HHH000021: Bytecode provider name : javassist 
     Nov 28, 2016 4:24:48 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit> 
     INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final} 
     Nov 28, 2016 4:24:48 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure 
     WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!) 
     Nov 28, 2016 4:24:48 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator 
     INFO: HHH10001005: using driver [org.postgresql.Driver] at URL [jdbc:postgresql://localhost:5432/postgres] 
     Nov 28, 2016 4:24:49 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator 
     INFO: HHH10001001: Connection properties: {user=admin, password=****} 
     Nov 28, 2016 4:24:49 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator 
     INFO: HHH10001003: Autocommit mode: false 
     Nov 28, 2016 4:24:49 PM org.hibernate.engine.jdbc.connections.internal.PooledConnections <init> 
     INFO: HHH000115: Hibernate connection pool size: 20 (min=1) 
     Nov 28, 2016 4:24:49 PM org.hibernate.dialect.Dialect <init> 
     INFO: HHH000400: Using dialect: org.hibernate.dialect.PostgreSQL94Dialect 
     Nov 28, 2016 4:24:49 PM org.hibernate.engine.jdbc.env.internal.LobCreatorBuilderImpl useContextualLobCreation 
     INFO: HHH000424: Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException 
     Nov 28, 2016 4:24:49 PM org.hibernate.type.BasicTypeRegistry register 
     INFO: HHH000270: Type registration [java.util.UUID] overrides previous : [email protected] 
     Hibernate: 
      insert 
       into 
         public.books 
           (description, title, id) 
    values 
      (?, ?, ?) 
Nov 28, 2016 4:24:50 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions 
WARN: SQL Error: 0, SQLState: 42501 
Nov 28, 2016 4:24:50 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions 
ERROR: ERROR: permission denied for relation books 
Nov 28, 2016 4:24:50 PM org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl release 
INFO: HHH000010: On release of batch it still contained JDBC statements 
Nov 28, 2016 4:24:50 PM org.hibernate.internal.ExceptionMapperStandardImpl mapManagedFlushFailure 
ERROR: HHH000346: Error during managed flush [org.hibernate.exception.SQLGrammarException: could not execute statement] 

javax.persistence.RollbackException: Error while committing the transaction 

    at org.hibernate.internal.ExceptionConverterImpl.convertCommitException(ExceptionConverterImpl.java:75) 
    at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:71) 
    at test.test_db(test.java:16) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45) 
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) 
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42) 
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) 
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263) 
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68) 
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47) 
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231) 
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60) 
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229) 
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50) 
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222) 
    at org.junit.runners.ParentRunner.run(ParentRunner.java:300) 
    at org.junit.runner.JUnitCore.run(JUnitCore.java:157) 
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68) 
    at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:51) 
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:237) 
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) 
Caused by: javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not execute statement 
    at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:147) 
    at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:155) 
    at org.hibernate.internal.ExceptionConverterImpl.convertCommitException(ExceptionConverterImpl.java:56) 
    ... 29 more 
    Caused by: org.hibernate.exception.SQLGrammarException: could not execute statement 
     at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:106) 
    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42) 
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111) 
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:97) 
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:207) 
    at org.hibernate.engine.jdbc.batch.internal.NonBatchingBatch.addToBatch(NonBatchingBatch.java:45) 
    at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2934) 
    at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3434) 
    at org.hibernate.action.internal.EntityInsertAction.execute(EntityInsertAction.java:89) 
    at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:586) 
    at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:460) 
    at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:337) 
    at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:39) 
    at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1406) 
    at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:476) 
    at org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion(SessionImpl.java:3165) 
    at org.hibernate.internal.SessionImpl.beforeTransactionCompletion(SessionImpl.java:2379) 
    at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion(JdbcCoordinatorImpl.java:467) 
    at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.beforeCompletionCallback(JdbcResourceLocalTransactionCoordinatorImpl.java:146) 
    at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.access$100(JdbcResourceLocalTransactionCoordinatorImpl.java:38) 
    at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:220) 
    at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:68) 
    ... 28 more 
    Caused by: org.postgresql.util.PSQLException: ERROR: permission denied for relation books 
     at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2453) 
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2153) 
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:286) 
    at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:432) 
    at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:358) 
    at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:171) 
    at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:138) 
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:204) 
    ... 45 more 

我搜索這個錯誤,但解決方案不幫我。我想引起Permision否認問題...

+0

正如異常中所述,您沒有插入表格的必要權限。 –

+0

奇怪的是,用這個登錄名和密碼我可以用pgAdmin3和IDEA db插入表中,但是用java代碼不能... – Vlad9pa

+0

嗯,我修改了它,改變了角色......很好。 – Vlad9pa

回答

0

至於你提到的問題是:您無權對錶books

Caused by: org.postgresql.util.PSQLException: ERROR: permission denied for relation books

也許下一次不顯示您的密碼,即使是在localhost

<property name="hibernate.connection.password" value="admin"/>

+0

好吧,將檢查什麼會發生錯誤的權限.password的舒適性,我剛開始學習EE – Vlad9pa