要するに、私の質問は、SpringデータJPAを使用して(nullではなく)事前設定された主キーでエンティティを保存する方法です。
説明するために、という名前の単純なエンティティクラスについて考えてみCustomer
ます。idは自動インクリメントに設定されておらず、カスタムの一意の値である必要があることに注意してください。これはほんの一例です。実際のテーブルのIDは、ユーザー名のようなカスタムの一意のIDである必要があります。
@Entity
@Table(name = "customer")
public class Customer implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@Column(name = "cust_id", nullable = false)
private Integer custId;
@Column(name = "first_name", length = 30)
private String firstName;
@Column(name = "last_name", length = 30)
private String lastName;
//getter, setters
}
そして、私CustomerRepository
は
@Repository
public interface CustomerRepository extends JpaRepository<Customer, Integer> {
}
ここで、ID101の新しい顧客レコードを挿入する必要があると思います。予想される方法は次のとおりです。
Customer customer = new Customer();
customer.setCustId(101);
customer.setFirstName("Some");
customer.setLastName("Name");
repository.save(customer);
しかし、repository.save()
ID 101の新しい顧客が挿入されないことがあります。では、これをどのように行う必要がありますか?