0
// Auto generation
public abstract class BaseEntity implements Serializable {
@Id
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
@Column(name = "id", unique = true)
private UUID id;
}
// Custom assignment
public abstract class BaseEntity implements Serializable {
@Id
@Column(name = "id", unique = true)
private UUID id = UUID.randomUUID();
}
public User extends BaseEntity{
@OneToOne
private Address address;
//... Getter/Setter
}
public Address extends BaseEntity{}
我的問題是,如果我想使用UUID作爲主鍵,我們需要使用發電機來分配的UUID是哪兩種方法之間的區別?Hibernate @GeneratedValue V.S.定製分配
對於自動生成,UUID僅在保存到數據庫後生成。以下
User user = new User();
User newUser = userRepository.save(user);
newUser.setAddress(new Address());
User newUserWithAddress = userRepository.save(user);
return newUserWithAddress;
對於自定義分配,可以在將UUID保存到數據庫之前生成UUID。代碼更乾淨。 如果我使用自定義作業,是否存在任何潛在問題?
User user = new User();
userRepository.save(user);
user.setAddress(new Address());
userRepository.save(user);
return user;
在自動生成中,您將如何確認每個生成的ID是唯一的?而不是重複? –