Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Hibernate many-to-many batch insert/update


Автор: Wizard97 18.10.2007, 18:47
Есть две сущности User и Answer
Между ними свзясь многие ко многим.

Код

@Entity
@Table(name="ANSWERS")
public class Answer implements java.io.Serializable {
    
    @Id @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(name="ANSWER_ID")
    private Long id;
    
    private String name;
    
    @ManyToOne
    @JoinColumn(name="QUESTION_ID")
    private
    Question question;
    
    @ManyToMany
    @JoinColumn(name="USER_ID")
    private
    List<User> users;
    ...


Код

@Entity
@Table(name="USERS")
public class User implements java.io.Serializable {
    
    @OneToMany(mappedBy = "user")
    private List<Task> tasks;
    
    @ManyToMany(mappedBy = "users")
    private List<Answer> answers;
    
    @Id @GeneratedValue(strategy=GenerationType.AUTO, generator="USERS_ID")
    @SequenceGenerator(sequenceName="SQ_USERS_ID", name="USERS_ID")
    @TableGenerator(name="USERS_ID")
    @Column(name="USER_ID")
    private Long id;
    
    @Temporal(value = TemporalType.TIMESTAMP)
    @Column(nullable=false, updatable=false)
    private Date created = new Date();
    
    @Temporal(value = TemporalType.TIMESTAMP)
    private Date updated;
    
    @ManyToMany(mappedBy = "users")
    private List<Group> groups;
    
    @Embedded
    @Column(nullable=false, unique=true)
    private Email email;
    
    @ManyToOne
    @JoinColumn(name="ROLE_ID")
    private Role role;
        ...



Каким образом эффективно вставлиять / обновлять записи для соответсвия какой юзер дал какой ответ на какой вопрос в промежудочной таблице USERS_ANSWERS(USER_ID, ANSWER_ID)? Это ответы на вопросы анкеты, вопросов может быть много ~100 т.е. тут идет обновление, добавления большого числа записей одновременно. Буду благодарен за помощь. Hibernate вещь хорошая, если знать все тонкости его использования, иначе - большой проиграш в производительности :( В доках по Hibernate тема many-to-many batch insert/update освещена похоже не очень.

Спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)