あなたはID(およびないUUID)としてロングを使用している場合は、より多くの可能性の高い記録があなたのdata.sqlにしてエンティティ関係の
例として登場して、あなたのIDは1から始まり、同じ順序に一致します
を
@Entity
public class Document {
@Id
@GeneratedValue
private Long id;
@Column(nullable = false, length=256)
@Size(min=1,max=256)
private String name;
private String code;
private Date date;
@OneToMany(mappedBy = "document", cascade = CascadeType.ALL)
@JsonManagedReference
private List<DocumentItem> documentItems;
@Entity(name="document_item")
public class DocumentItem {
@Id
@GeneratedValue
private Long id;
@Column(nullable = false, length=256)
private String name;
private BigDecimal price;
@ManyToOne(optional = false)
@JsonBackReference
private Document document;
上記の例では、document_id列にdocument_idというエンティティが追加されています。
あなたはまた、例えば、関係のために使用されているJoinColumnアノテーションで列名を指定することがあります。
@ManyToOne(optional = false)
@JoinColumn(name = "publisher_id")
private Publisher publisher;
例の初期化スクリプト:
INSERT INTO document(name, code) VALUES ('Test Document 1', 'TD-1');
INSERT INTO document(name, code) VALUES ('Test Document 2', 'TD-2');
INSERT INTO document(name, code) VALUES ('Test Document 3', 'TD-3');
INSERT INTO document(name, code) VALUES ('Test Document 4', 'TD-4');
INSERT INTO document(name, code) VALUES ('Test Document 5', 'TD-5');
INSERT INTO document_item(document_id, name, price) VALUES (2,'Test Item 2.A', 100.45);
INSERT INTO document_item(document_id, name, price) VALUES (2,'Test Item 2.B', 30.45);
INSERT INTO document_item(document_id, name, price) VALUES (2,'Test Item 2.C', 564);
INSERT INTO document_item(document_id, name, price) VALUES (4,'Test Item 4.A', 1);
INSERT INTO document_item(document_id, name, price) VALUES (4,'Test Item 4.B', 456);
INSERT INTO document_item(document_id, name, price) VALUES (5,'Test Item 5.A', 67);
INSERT INTO document_item(document_id, name, price) VALUES (2,'Test Item 2.D', 98);
あなたは可能性が高いあなたのIDから開始する」書きます1 "...それは"ただの可能性のある洞察 "ではない(私が知ったところでは)IDはDBによってどのように生成されるのかを構成することができます。 @GeneratedValue((strategy = GenerationType.AUTO)または@GeneratedValue(strategy = GenerationType.SEQUENCE) @ SequenceGenerator(name = "sequence"、allocationSize = 10)後者はシーケンシャルな番号付けをします。 – Robert
@Robert、あなたは正しいです。私はちょうどID生成戦略について詳しくは詳しくは触れていませんでしたが、その可能性を示唆しています。 – Alexander