를 사용하는 경우 법인은 지속되지 :나는 다음과 같은 필드 주석을 사용하고 JPA
@Id
@TableGenerator(name = "comment_sequence", pkColumnValue = "comment_sequence")
@GeneratedValue(strategy = GenerationType.TABLE, generator = "comment_sequence")
private Long id_comment;
테이블을 작성하는 SQL은 다음과 같습니다
CREATE TABLE hibernate_sequences (sequence_name VARCHAR(255) NOT NULL, next_val bigint, PRIMARY KEY (sequence_name));
INSERT INTO hibernate_sequences VALUES ('comment_sequence', 1);
그러나 기업은 단순히되지 않습니다 지속. 무슨 일이 일어날 지 생각해? 위에서 제시 한 코드에 문제가 있습니까?
이 편집 : 내가 원래의 게시물에 몇 가지 정보를 억제, 나는 (거의 =/자고 한밤중에 요청) 죄송합니다.
엔티티가 제대로 나는 SEQUENCE
로 전략을 변경하고 CREATE SEQUENCE hibernate_sequence
모든 것이 (이 유지됩니다) 잘 작동하는 SQL을 추가 할 경우, 생성,하지만 난에 행에 각 테이블의 순서를 유지하기 위해 TABLE
전략을 사용할되고있다 hibernate_sequences
.
유일한 예외는 통합 테스트에서 실패한 테스트로 인한 NullPointerException
때문에 TransactionRolledbackException
입니다. 왜 데이터를 삽입하지 않는지에 대한 명시 적 정보가 없습니다. 이 관련 될 수있는 경우
...
12:38:48,753 INFO [stdout] (pool-5-thread-1) Hibernate:
12:38:48,754 INFO [stdout] (pool-5-thread-1) insert
12:38:48,755 INFO [stdout] (pool-5-thread-1) into
12:38:48,756 INFO [stdout] (pool-5-thread-1) cm_comment
12:38:48,757 INFO [stdout] (pool-5-thread-1) (cd_status, ds_message, dt_alt, dt_inc, id_user_alt, id_user_inc, id_problem, id_comment)
12:38:48,758 INFO [stdout] (pool-5-thread-1) values
12:38:48,759 INFO [stdout] (pool-5-thread-1) (?, ?, ?, ?, ?, ?, ?, ?)
12:38:48,766 INFO [stdout] (pool-5-thread-1) Hibernate:
12:38:48,766 INFO [stdout] (pool-5-thread-1) select
12:38:48,767 INFO [stdout] (pool-5-thread-1) commentent0_.id_comment as id1_6_,
12:38:48,768 INFO [stdout] (pool-5-thread-1) commentent0_.cd_status as cd2_6_,
12:38:48,770 INFO [stdout] (pool-5-thread-1) commentent0_.ds_message as ds3_6_,
12:38:48,771 INFO [stdout] (pool-5-thread-1) commentent0_.dt_alt as dt4_6_,
12:38:48,772 INFO [stdout] (pool-5-thread-1) commentent0_.dt_inc as dt5_6_,
12:38:48,773 INFO [stdout] (pool-5-thread-1) commentent0_.id_user_alt as id6_6_,
12:38:48,774 INFO [stdout] (pool-5-thread-1) commentent0_.id_user_inc as id7_6_,
12:38:48,775 INFO [stdout] (pool-5-thread-1) commentent0_.id_problem as id8_6_
12:38:48,776 INFO [stdout] (pool-5-thread-1) from
12:38:48,777 INFO [stdout] (pool-5-thread-1) cm_comment commentent0_
12:38:48,778 INFO [stdout] (pool-5-thread-1) where
12:38:48,779 INFO [stdout] (pool-5-thread-1) commentent0_.id_problem=?
12:38:48,840 ERROR [org.jboss.arquillian.protocol.jmx.JMXTestRunner] (pool-5-thread-1)
...
java.lang.AssertionError: expected:<1> but was:<0>
...
나는 확실하지 않다하지만 이전 테스트에서 나는 오류 얻을 :
hibernate.show_sql = true
를 사용할 때 다음과 같은 최대 절전 모드의 출력을 얻을
12:50:36,510 INFO [org.jboss.as.ejb3] (pool-4-thread-1) JBAS014101: Failed to find SFSB instance with session ID {[-98, -17, -32, -33, 63, 107, 74, 59, -76, -127, -19, 29, 24, 45, -50, 5]} in cache
나는 을 log_statement = 'all'
으로 변경하고 어떤 로그도 보지 않은 채로 앱을 실행 한 후 pg_log
디렉토리를 체크인합니다. 그래서 나는 그 옵션을 어떻게 사용할 수 있을지 확신하지 못합니다.
또한 Arquillian, arquillian 지속성 API 및 JBoss 관리 인스턴스를 사용하여 통합 테스트를 수행하고 있습니다. 태그 중 일부와 관련 될 수 있으므로 태그를 업데이트 할 예정입니다. TableGenerator
의
예, 작동하지 않는다는 사실을 근거로 뭔가 잘못하고있는 것입니다. 이보다 더 많은 것을 원한다면 더 많은 코드와 구성은 물론 오류가 발생할 수도 있습니다. 바람직하게는 [SSCCE] (http://sscce.org/)를 제공하십시오. –
엔티티를 생성 했습니까? 당신은 그것을 지속 했습니까? 우리는 그 어떤 것도 볼 수 없습니다. 또한 PostgreSQL에서'log_statement'를 활성화 한 다음 PostgreSQL 로그 파일에서 관련있는 명령문 및 오류를 검사해야합니다.코드에서 예외를 삼가 지 않도록하십시오. –
@RyanStewart 나는 그것이 "위에 제시된 코드에 문제가 있습니까?"라는 암시라고 생각했습니다. @CraigRinger 나는 조금 더 설명하는 나의 포스트를 편집 할 것이다, 나는 단지 코드의 부분이 뭔가 잘못 될 수 있다고 생각했다. 왜냐하면 내가 전략을'SEQUENCE'로 바꾸면 모든 것이 잘 작동하기 때문이다. –