Tôi hiện đang sử dụng ORMLite để làm việc với cơ sở dữ liệu SQLite trên Android. Là một phần của điều này, tôi đang tải xuống một loạt dữ liệu từ máy chủ phụ trợ và tôi muốn có dữ liệu này được thêm vào cơ sở dữ liệu SQLite ở định dạng chính xác giống như trên máy chủ phụ trợ (tức là các ID giống nhau, v.v.) . Vì vậy, câu hỏi của tôi đối với bạn là nếu tôi điền đối tượng nhập cơ sở dữ liệu của mình (chúng tôi gọi nó là Thiết bị), bao gồm trường khóa CreatedId/primary của thiết bị thông qua setId() và sau đó chạy DAO.create() với rằng thiết bị nhập ID sẽ được lưu chính xác? Tôi đã thử nó theo cách này và có vẻ như với tôi rằng đây không phải là trường hợp. Nếu đó là trường hợp tôi sẽ thử lại và tìm kiếm các vấn đề khác, nhưng với một vài người đầu tiên vượt qua mã tôi đã không thể tìm thấy một. Vì vậy, về cơ bản, nếu tôi gọi DAO.create() trên một đối tượng cơ sở dữ liệu với một bộ ID thì ID đó sẽ được gửi đến cơ sở dữ liệu và nếu nó không được, làm thế nào tôi có thể chèn một hàng với một giá trị khóa chính đã được điền?Hàng Chèn Android/ORMLite có ID
Cảm ơn!
Tôi đã đọc điều này, nhưng tôi cho rằng tôi cũng có thể nhập ID của riêng mình, bởi vì trong các cơ sở dữ liệu khác tôi có thể INSERT với id ngay cả khi nó có khóa chính được tạo tự động. Đây có phải là một cái gì đó cụ thể để thiết lập của ORMLite, hoặc có thể cơ sở dữ liệu SQLite? –
Nó dành riêng cho ORMLite: xem http://ormlite.svn.sourceforge.net/viewvc/ormlite/ormlite-core/trunk/src/main/java/com/j256/ormlite/stmt/mapped/MappedCreate.java? revision = 1861 & view = markup, dòng 32.Bạn sẽ nhận thấy rằng nó sẽ tự động gán id cho các thiết lập createdId hoặc generatedIdSequence, mà không kiểm tra xem một giá trị đã được thiết lập chưa. Nếu bạn đang sử dụng SQLite, bạn có thể chỉ cần viết vào cơ sở dữ liệu theo cách thủ công, sau đó tải lại bằng ORMLite hoặc thêm một cột riêng cho id cơ sở dữ liệu máy chủ (đó là những gì tôi làm, mặc dù tôi không sử dụng ORMLite). – Femi