猿问

使用@GeneratedValue(strategy=GenerationType.AUTO) 时

我正在学习Hibernate数据库MySql,在制作小项目时我想出了奇怪的休眠行为。我正在尝试保存一个实体(代码如下),但实体没有持久化到数据库中。我只使用session.save(e)方法。如果我正在使用它就可以工作@GeneratedValue(strategy=GenerationType.IDENTITY),如果我正在使用它就不会工作@GeneratedValue(strategy=GenerationType.AUTO)。


同样,如果我使用会话事务 ( begin and commit),它在两种情况下都有效(AUTO 和 IDENTITY)。


同样,如果我使用两个不同的实体,一个使用 AUTO,另一个使用 IDENTITY,它正在工作。


第一个实体


import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

import javax.persistence.Table;


@Entity

@Table(name = "EMPLOYEE")

public class Employee {


    @Id

    @GeneratedValue(strategy = GenerationType.IDENTITY)

    @Column(name = "EMP_ID")

    private int empId;


    @Column(name ="name")

    private String name;


    public int getEmpId() {

        return empId;

    }


    public void setEmpId(int empId) {

        this.empId = empId;

    }


    public String getName() {

        return name;

    }


    public void setName(String name) {

        this.name = name;

    }


}

第二实体


import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

import javax.persistence.Table;


@Entity

@Table(name = "SUPEMPLOYEE")

public class SupperEmploye {


    @Id

    @GeneratedValue(strategy = GenerationType.AUTO)

    @Column(name = "EMP_ID")

    private int empId;


    @Column(name ="name")

    private String name;


    public int getEmpId() {

        return empId;

    }


    public void setEmpId(int empId) {

        this.empId = empId;

    }


    public String getName() {

        return name;

    }


    public void setName(String name) {

        this.name = name;

    }


}




慕尼黑5688855
浏览 368回答 2
2回答

30秒到达战场

尝试这个@GeneratedValue(strategy=GenerationType.IDENTITY)

幕布斯6054654

你应该使用@GeneratedValue(strategy = GenerationType.AUTO, generator = "native")代替@GeneratedValue(strategy = GenerationType.AUTO)
随时随地看视频慕课网APP

相关分类

Java
我要回答