gpt4 book ai didi

java - Hibernate/JPA 中的类型安全主键

转载 作者:行者123 更新时间:2023-12-04 06:58:45 25 4
gpt4 key购买 nike

我正在寻找一种在 Hibernate 中使用泛型为我的实体提供类型安全主键的方法。而不是这样做

@Entity
public class User{

@PrimaryKey
Long id

}

本来想做这个。。。
@Entity
public class User{

@PrimaryKey
PrimaryKey<User,Long> id

}

或者进一步进行类型推断......

有任何想法吗?有没有人试过这个?你会通过让你的类 PrimaryKey 可嵌入来做到这一点吗?
@Entity
public class User extends MyEntity<Long>//Primary key type{

@PrimaryKey
PrimaryKey<User> id;

}

最佳答案

虽然可以使用 PK 类并将其用作具有 @EmbeddedId 的实体的成员,这通常会使您的所有 JQL 查询和 Java 代码更加冗长:

select a.addressKey.id from Address a

或者
AddressKey addressKey = new AddressKey();
addressKey.setCountry("USA");
addressKey.setId(634);
Address a = entityManager.find(Address.class, addressKey);

所以我个人只会将它用于真正的复合键(即不具有单个属性)。

实际上,我真的很想知道您要解决什么问题,因为最后您将不得不处理 Long反正。我真的没有看到单个属性类型安全主键的附加值。

关于java - Hibernate/JPA 中的类型安全主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2209665/

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