dentity在Java里是什么意思_注释@Id和@GeneratedValue(strategy = GenerationType.IDENTITY)的用途是什么?为什么世代类型是身份?...
小編典典
讓我回答這個問題:
首先,使用注釋作為我們的configure方法只是一種便捷的方法,而不是應對無休止的XML配置文件。
的@Id注釋是繼承自javax.persistence.Id,指示構件字段下面是當前實體的主鍵。因此,您的Hibernate和spring框架以及您可以reflect基于此注釋進行一些工作。有關詳細信息,請檢查javadoc以獲取ID
的@GeneratedValue注釋是配置指定列(字段)的增量的方式。例如,當使用時Mysql,您可以auto_increment在表的定義中指定使其自增,然后使用
@GeneratedValue(strategy = GenerationType.IDENTITY)
在Java代碼中表示您也已確認使用此數據庫服務器端策略。另外,您可以更改此批注中的值以適合不同的要求。
1.在數據庫中定義序列
例如,Oracle必須使用sequence增量方法,例如我們在Oracle中創建一個序列:
create sequence oracle_seq;
2.參考數據庫順序
現在我們已經在數據庫中有了序列,但是我們需要使用@SequenceGenerator以下方法在Java和DB之間建立關系:
@SequenceGenerator(name="seq",sequenceName="oracle_seq")
sequenceName是Oracle中序列的真實名稱,name是您要在Java中稱呼它的名稱。您需要指定sequenceName是否不同于name,否則只需使用即可name。我通常會忽略sequenceName以節省時間。
3.在Java中使用序列
最后,是時候在Java中使用此序列了。只需添加@GeneratedValue:
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="seq")
該generator字段指您要使用的序列生成器。請注意,它不是數據庫中的真實序列名稱,而是您在中的name字段中指定的名稱SequenceGenerator。
4.完成
因此完整的版本應如下所示:
public class MyTable
{
@Id
@SequenceGenerator(name="seq",sequenceName="oracle_seq")
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="seq")
private Integer pid;
}
現在開始使用這些注釋來簡化JavaWeb開發。
2020-06-20
總結
以上是生活随笔為你收集整理的dentity在Java里是什么意思_注释@Id和@GeneratedValue(strategy = GenerationType.IDENTITY)的用途是什么?为什么世代类型是身份?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: R8500梅林固件
- 下一篇: Java中BigDecimal的8种舍入