gpt4 book ai didi

mysql - Spring data JPA 只有一个组合键自动递增

转载 作者:可可西里 更新时间:2023-11-01 07:43:26 27 4
gpt4 key购买 nike

我正在使用 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com