我使用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