我正在使用MySQL数据库。
我的表是一个雇员,其中有两个主键,其中一个是自动递增的。
我的代码是:
@Embeddable
public class EmployeeId implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@Column(name = "id", nullable = false)// this i want to increment
private int id;
// I have tried and @GeneratedValue(strategy = GenerationType.IDENTITY),
//@GeneratedValue(strategy = GenerationType.IDENTITY)
//and @GeneratedValue(strategy = GenerationType.TABLE)
//@GeneratedValue(strategy = GenerationType.AUTO, generator = "id") @SequenceGenerator(name = "id", sequenceName = "id")
@Column(name = "gender_key", nullable = false)
private id gender_key;
}
@Entity
@Table(name = "employee")
public class employee {
@EmbeddedId
private EmployeeId employeeId;
private String emp_name;
private String mobile_no;
employee() {
}}
public interface employeeRepository extends
JpaRepository<employee, EmployeeId> {
}
在我的控制器中,我想在employeeRepository.save(bean)之后使用id;方法因为我想将该id保存在不同的表中。
logger.info(“id is ---&gt;”+ id);
但我总是得到0的id值。
如何获取插入MySQL表的id的递增值?
请帮助。
提前致谢。
答案 0 :(得分:0)
您是尝试从原始对象获取值还是从save
方法返回对象?我们假设您有以下代码:
employeeRepository.save(bean)
int id = bean.getId();
logger.info("id is --- > "+id);
这确实会返回零,因为您的对象没有此信息。如果要获取在数据库上生成的值,则必须执行以下操作:
bean = employeeRepository.save(bean)
int id = bean.getId();
logger.info("id is --- > "+id);