java - JPA,如何插入具有ManyToMany关系的新实体?

标签 java jpa eclipselink

我尝试:(查看代码),但它不起作用。

List<User> users = query.getResultList();

if (users.isEmpty()) {
    System.out.println("tworzę konto admina");
    User admin = new User();
    admin.set(...)

    Role role = new Role();
    role.setName("Develop");
    role.set...
    // the first method dont work
    admin.getRoles().add(role); /// but admin.getRoles() IS Null!!! (I get nullPointerExeption)


    // the second method dont work too
    // List<Role> roles = new ArrayList<Role>();
    //roles.add(role);
    //admin.setRoles(roles);


    entityManager.persist(role);
    entityManager.persist(admin);
}

用户类别:

public class User {
    @ManyToMany
    @JoinTable(
            name = "role_has_user",
            joinColumns = {
                @JoinColumn(name = "user_id")
            },
            inverseJoinColumns = {
                @JoinColumn(name = "role_id")
            }
    )
}

在第二种方法中我得到:

<小时/>
Local Exception Stack: 
Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'rw.SEQUENCE' doesn't exist
Error Code: 1146
Call: UPDATE SEQUENCE SET SEQ_COUNT = SEQ_COUNT + ? WHERE SEQ_NAME = ?
    bind => [2 parameters bound]
Query: DataModifyQuery(name="SEQUENCE" sql="UPDATE SEQUENCE SET SEQ_COUNT = SEQ_COUNT + ? WHERE SEQ_NAME = ?")
    at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:331)...

最佳答案

您的实体无法持久保存,因为您的 JPA 提供程序无法为它们生成 Id。您可能使用了 @GenerateValue 注释,但没有在底层数据库上创建表 SEQUENCE 。您使用模式生成吗?如果不是,则创建包含 SEQ_COUNT SEQ_NAME 列的适当表。

关于java - JPA,如何插入具有ManyToMany关系的新实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24804586/

相关文章:

java - 我如何从适配器获取数据并在 Android 的 Activity 中显示

java - jpa级联删除反向关系

java - jUnit 4.x 中的前后套件执行 Hook

Java 使用数组比 C++ 中的 std::vector 快 8 倍。我做错了什么?

java - @OneToMany 映射列表大小限制

java - 如何查找RollbackException的原因?

java - JPA Eclipselink 插入表时出错

java - 处理@DiscriminatorColumn 中的 NULL 值

java - Apache Solr Java 教程

java - 如何使用 JPA/Hibernate 将自定义数据结构映射到 bean 实体?