gpt4 book ai didi

java - Spring Data JPA 只有一个组合键是自增问题

转载 作者:行者123 更新时间:2023-11-28 23:09:26 25 4
gpt4 key购买 nike

我正在使用 MySQL 数据库。

在我的表 i 中有两个四个主键,其中一个是自动递增的。

@Embeddable
public class EmployeeId implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@Column(name = "id", nullable = false)//
This is just Pk in mysql table
**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")
**this is auto incremented and pk in mysql table**
@Column(name = "gender_key", nullable = false)
private int 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("gender_key 是 ---> "+gender_key);

但我得到的 gender_key 值总是 0。

我试过的是:

bean = employeeRepository.save(bean)
int gender_key= bean.getGender_key();
logger.info("gender_keyis --- > "+gender_key);

但是 gender_key 的值仍然是 0(零)。或者我必须在存储库中编写的任何查询。

如何获取插入到 MySQL 表中的 gender_key 的自增值?

请帮助。

提前致谢。

最佳答案

您的 JPA @Id 不需要匹配数据库 PK 列。只要它是独一无二的,那么这就是最重要的。

来自 https://en.wikibooks.org/wiki/Java_Persistence/Identity_and_Sequencing :

The JPA Id does not always have to match the database table primary key constraint, nor is a primary key or a unique constraint required.

由于您的自动增量列保证是唯一的,因此只需使用 gender_key 作为您的 @ID 并将 map id 作为普通列。

@Entity
@Table(name = "employee")
public class employee {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int genderKey;

@Column
private int id;

}

老实说,我会发现您的模式令人困惑。

我还建议阅读以下内容:

https://www.javatpoint.com/java-naming-conventions

关于java - Spring Data JPA 只有一个组合键是自增问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46358163/

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