@GeneratedValue和@GenericGenerator的区别
有时我发现他们在一起,有时是孤独的...其他时候,他们似乎也这样做。
有什么区别?
下面是三个示例。他们有什么不同之处?为什么我不能只使用@GeneratedValue来表示所有这些?
示例 1
@Id
@GeneratedValue(generator="increment")
@GenericGenerator(name="increment", strategy = "increment")
Long id;
示例 2
@Id @GeneratedValue(strategy=GenerationType.SEQUENCE)
private int userId;
示例 3
@ElementCollection
@JoinTable(name="Address",
joinColumns=@JoinColumn(name="user_id")
)
@GenericGenerator(name="hilo-gen", strategy="hilo")
@CollectionId(columns = @Column(name="Address_id"), generator = "hilo-gen", type = @Type(type="long"))
Collection<Addr> listOfAddresses = new ArrayList<Addr>();