Spring boot “获取信息”;尝试定义第二个主键;。运行@DataJpaTest时

Spring boot “获取信息”;尝试定义第二个主键;。运行@DataJpaTest时,spring-boot,junit,h2,flyway,Spring Boot,Junit,H2,Flyway,我不知道确切的原因,但我从H2数据库中的Flyway evolution中得到了这条信息。这是一个@DataJpaTest春季开机测试 似乎有些方言的东西没有受到尊重 尝试定义第二个主键;SQL语句: @RunWith(SpringRunner.class) @DataJpaTest @FlywayTest public class ParagraphStoreTest { @Autowired private TestEntityManager entityManager; @Autow

我不知道确切的原因,但我从H2数据库中的Flyway evolution中得到了这条信息。这是一个@DataJpaTest春季开机测试

似乎有些方言的东西没有受到尊重

尝试定义第二个主键;SQL语句:

@RunWith(SpringRunner.class)
@DataJpaTest
@FlywayTest

public class ParagraphStoreTest {

@Autowired
private TestEntityManager entityManager;

@Autowired
private ParagraphStore paragraphStore;

@Test
public void testExample() throws Exception {

    long scanId = 123;
    long userId = 1234;
    int minParagraphLength = 1;
    int pageNumber = 1;
    int pageSize = 50;

    Pageable pageable = new PageRequest(pageNumber, pageSize, Direction.ASC, "paragraphIndex");

    this.entityManager.persist(Paragraph.builder().scan(Scan.builder().id(scanId).urlId(userId).build())
            .paragraphIndex(1).wordCount(1));

    Page<Paragraph> paragraphs = this.paragraphStore.findAllParagraphStatsByScanIdLimit(scanId, userId,
            minParagraphLength, pageable);

    assertNotNull(paragraphs);
}

}
User.java

@Entity
@Table(name="users")
@AllArgsConstructor(access = AccessLevel.PROTECTED)

@NoArgsConstructor

@ToString(callSuper=true)
@Builder
public class User {

@Id
@Getter @Setter
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="users_id_seq")
@SequenceGenerator(name="users_id_seq", sequenceName="users_id_seq")
private Long id;

@Getter @Setter
private String socialId;

@Getter @Setter
private boolean IsEmailActivationRequired;

@Getter @Setter
private String firstName;

@Getter @Setter
private String lastName;

@Getter @Setter
private String userName;

@Getter @Setter
private String userPass;

@Email
@NotNull
@NotEmpty
@Getter @Setter
private String userEmail;

}

发布模型代码。@RobertMoskal完成。怀疑一旦我的SQL具有PostgreSQL特性,它就永远不会工作我不明白JPA为什么试图为用户名生成主键。该字段未进行注释。Flyway正在尝试创建PK。JPA标记为验证
@Entity
@Table(name="users")
@AllArgsConstructor(access = AccessLevel.PROTECTED)

@NoArgsConstructor

@ToString(callSuper=true)
@Builder
public class User {

@Id
@Getter @Setter
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="users_id_seq")
@SequenceGenerator(name="users_id_seq", sequenceName="users_id_seq")
private Long id;

@Getter @Setter
private String socialId;

@Getter @Setter
private boolean IsEmailActivationRequired;

@Getter @Setter
private String firstName;

@Getter @Setter
private String lastName;

@Getter @Setter
private String userName;

@Getter @Setter
private String userPass;

@Email
@NotNull
@NotEmpty
@Getter @Setter
private String userEmail;

}