我正在使用 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> {
}
在我的 Controller 中,我想要 id after employeeRepository.save(bean);方法,因为我想将该 ID 保存在不同的表中。
logger.info("id is ---> "+id);
但是我得到的 id 值总是 0。
如何获取插入到MySQL表中的id的增量值?
请帮助。
提前致谢。
最佳答案
您是要从原始对象还是从 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);
关于mysql - Spring data JPA 只有一个组合键自动递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46254226/