Hibernate Session两次保存相同的对象

时间:2015-06-20 07:06:30

标签: java spring hibernate

Hello每当我尝试在Hibernate中保存一个对象时,任何人都可以帮我保存两次。

注意:以下日志消息显示在session.saveOrUpdate(register);

之后

我的代码是

Session session = null;
        Transaction transaction = null;
        try {
            session = this.sessionFactory.getCurrentSession();
            transaction = session.beginTransaction();
            session.saveOrUpdate(register);
            transaction.commit();
            session.close();
            return true;
        } catch (HibernateException ex) {
            transaction.rollback();
        }

我的日志是

Hibernate:insert into UserRegister (address1, address2, bloodGroup, addressCity, dateOfBirth, firstName, gender, lastName, password, phoneNumber, addressState, userEmail, userName, addresszipCode) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)

Hibernate:insert into UserRegister (address1, address2, bloodGroup, addressCity, dateOfBirth, firstName, gender, lastName, password, phoneNumber, addressState, userEmail, userName, addresszipCode) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)

我的实体是

@Entity
@Table(name = "UserRegister", uniqueConstraints = {
@UniqueConstraint(columnNames = {"id"})})
public class User implements Serializable {

    private static final long serialVersionUID = -77886191777123344L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id", nullable = false, unique = true, length = 11)
    private int userID;

    @Column(name = "firstName", nullable = false)
    private String firstName;

    @Column(name = "lastName", nullable = false)
    private String lastName;

    @Column(name = "userName", nullable = false)
    private String userName;

    @Column(name = "password", nullable = false)
    private String password;

    @Column(name = "gender", nullable = false)
    private String gender;

    @Column(name = "dateOfBirth", nullable = false)
    private Timestamp dateOfBirth;

    @Column(name = "bloodGroup", nullable = true)
    private String bloodGroup;

    @Column(name = "userEmail", nullable = false)
    private String userEmail;

    @Column(name = "phoneNumber", nullable = false)
    private String phoneNumber;

    @Column(name = "address1", nullable = false)
    private String address1;

    @Column(name = "address2")
    private String address2;

    @Column(name = "addressCity")
    private String city;

    @Column(name = "addressState")
    private String state;

    @Column(name = "addresszipCode")
    private String zipCode;

    @OneToMany(cascade = CascadeType.ALL)
    @JoinColumn(name="userID")
    private List<UserMessages> userMessages;

我的UserMessages实体

@Entity
@Table(name = "UserMessages", uniqueConstraints = {
    @UniqueConstraint(columnNames = {"id"})})
public class UserMessages implements Serializable {
    private static final long serialVersionUID = -77886191777123344L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id", nullable = false, unique = true, length = 11)
    private int messageID;

    @Column(name = "fromName", nullable = false)
    private String fromName;

    @Column(name = "message", nullable = false)
    private String message;

    @Column(name = "messageTime", nullable = false)
    private Timestamp messageTime;

    @Column(name = "fromPhoneNumber", nullable = false)
    private String fromPhoneNumber;

    @ManyToOne
    @JoinColumn(name="userID", insertable=false, updatable=false)
    private User user;

0 个答案:

没有答案