เมื่อเร็ว ๆ นี้เมื่อเขียนโครงการห้างสรรพสินค้าออนไลน์ฉันพบปัญหา: ไฮเบอร์เนตไม่มีผลใด ๆ หลังจากดำเนินการวิธีการบันทึก () หรืออัปเดต () ไม่มีการเปลี่ยนแปลงในฐานข้อมูลและคอนโซลไม่ได้รายงานข้อผิดพลาดใด ๆ ซึ่งทำให้ฉันพูดไม่ออก ...
ฉันตรวจสอบออนไลน์และบางคนบอกว่ามันเป็นปัญหาที่เกิดขึ้นเองของคีย์หลักและบางคนบอกว่าการทำธุรกรรมไม่ได้เริ่มต้นดังนั้นจึงเป็นไปไม่ได้ที่จะเขียนหรืออัปเดตฐานข้อมูล ฉันอ่านการวิเคราะห์ของพวกเขาโดยละเอียดและทุกอย่างสมเหตุสมผล แต่วิธีแก้ปัญหาเหล่านี้ไม่ได้ผลสำหรับฉันเพราะคีย์หลักของฉันไม่มีปัญหาและการทำธุรกรรมได้รับการจัดการในฤดูใบไม้ผลิและมันก็โอเคในการดำเนินการบันทึกอื่น ๆ แต่ไม่มีปัญหา
เนื่องจากไม่มีปัญหาอย่างเป็นกลางฉันจึงมุ่งเน้นไปที่วัตถุเฉพาะเพื่อบันทึกหรืออัปเดตและวิเคราะห์ POJO อย่างระมัดระวัง ก่อนอื่นมาดูตารางในฐานข้อมูลที่สอดคล้องกันของวัตถุเพื่อบันทึก:
- - สร้างผลิตภัณฑ์ตาราง ( /* หมายเลขผลิตภัณฑ์การเติบโตอัตโนมัติ* /id int คีย์หลักไม่ใช่ null auto_increment, /* ชื่อผลิตภัณฑ์* /ชื่อ varchar (50), /* ราคาผลิตภัณฑ์* /ราคาทศนิยม (8,2), /* รูปภาพผลิตภัณฑ์* /pic varchar (300), /* ผลิตภัณฑ์ที่มีค่าเริ่มต้น มันเป็นผลิตภัณฑ์ที่แนะนำอาจแสดงในหน้าแรกของห้างสรรพสินค้า */ ความคิดเห็นบูล/ *ไม่ว่าจะเป็นผลิตภัณฑ์ที่ถูกต้องหรือไม่อาจแสดงในหน้าแรกของห้างสรรพสินค้า */ เปิดบูล/ *จำนวนหมวดหมู่ของผลิตภัณฑ์ที่อยู่ */ CID
จากนั้น pojo เฉพาะจะไม่ถูกโพสต์ แต่คุณสมบัติของฟิลด์และตั้งค่าและรับวิธีการที่สร้างขึ้นตามตารางนี้ ฉันคิดว่าฟิลด์ที่น่าจะมีปัญหามากที่สุดควรเป็นวันที่ครั้งนี้ดังนั้นฉันจึงดูรหัสเกี่ยวกับวันที่ใน Pojo:
@ENTITY Public Class Product ใช้ java.io.serializable {// Fields วันที่ TIMESTAMP ส่วนตัว; // ละเว้นรหัสที่ไม่เกี่ยวข้องอื่น ๆ ... @column (name = "วันที่", nullable = false, ความยาว = 19) การประทับเวลาสาธารณะ getDate () {return this.date; } โมฆะสาธารณะ setDate (วันที่ timestamp) {this.date = วันที่; - ดังนั้นฉันจึงค้นหาการประทับเวลานี้ทางออนไลน์อีกครั้งและพบว่าปัญหาอยู่ที่นี่เพียงเปลี่ยนการประทับเวลาเป็น java.util.date จากนั้นวัตถุวันที่จะถูกส่งผ่านและไฮเบอร์เนตจะแปลงเป็นประเภทการประทับเวลาโดยอัตโนมัติ
ปัญหานี้ยังทำให้ฉันมี การเปิดเผย : การไร้ความสามารถในการดำเนินการฐานข้อมูลอาจเป็นปัญหากับวัตถุเองและเราจำเป็นต้องแก้ไขปัญหาระหว่างฟิลด์ของตารางและแอตทริบิวต์ Pojo
ลิงค์ดั้งเดิม: http://blog.csdn.net/eson_15/article/details/51383298
ข้างต้นเป็นเรื่องเกี่ยวกับบทความนี้ฉันหวังว่ามันจะเป็นประโยชน์กับการเรียนรู้ของทุกคน