我使用Spring Boot 1.3.7.RELEASE作爲應用程序框架,Hibernate作爲JPA實現,Spring Data作爲數據訪問接口,MySQL 5.7.15作爲存儲服務器。我有兩種型號:Agency
和ServiceAreaCoverage
。 Agency
目前有oneToOne
單向ServiceAreaCoverage
。這是我的應用程序模型和映射的。Hibernate是堅持零而不是雙值
@Entity
@Table(name = "agencies")
public class Agency {
@Id
private String id;
private String name;
private long phoneNumber;
private String email;
private String websiteUrl;
private boolean active;
@OneToOne(cascade = CascadeType.PERSIST)
@JoinColumn(name = "service_area_coverage_id")
private ServiceAreaCoverage serviceAreaCoverage;
}
@Entity
@Table(name = "service_area_coverages")
public class ServiceAreaCoverage {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private double latitude;
private double longitude;
private double latitudeSpan;
private double longitudeSpan;
}
我試圖使用Spring數據JpaRepository的保存方法保存Agency
與ServiceAreaCoverage
。 Agency
和ServiceAreaCoverage
都得到保存,關鍵約束也得到妥善管理。但是,double
值未保存。而不是雙重值,零被保存。我想不出有什麼理由要發生這種結果,也不能想到排除故障的想法。所以任何幫助真的會被讚賞的傢伙。這是我的一些其他代碼和參考相對於這個問題。
服務代碼:
@Service
public class AgencyServiceImpl implements AgencyService {
@Autowired
private AgencyRepository agencyRepository;
@Override
public void createAgency(Agency agency) {
this.agencyRepository.save(agency);
}
}
倉庫接口代碼:
@Repository
public interface AgencyRepository extends JpaRepository<Agency, String> {
}
你能告訴我們你的數據庫表的結構嗎? – Beethoven
Hello @Beethoven,我添加了生成的表結構的屏幕截圖。謝謝你看這件事。 –
哼,看不清楚,怎麼會出問題。以下是一些常見的故障排除建議:1.字段的名稱是否與相應的數據庫列名稱不同'latitudeSpan' /'latitude_span'正確映射,某處? 2.當然,重要的一點是設置雙字段的值。 3.將logger'org.hibernate.SQL'設置爲調試以查看由Hibernate生成的SQL查詢通常很有用。 – Beethoven