当前位置: 首页 > 知识库问答 >
问题:

DataIntegrityViolationException:无法执行语句;SQL不适用;约束fk_qjc1iwbdvgwixafwdkjn82tmt

叶嘉颖
2023-03-14

我想弄清楚冬眠。我以为我做了所有的互联网教程和所有,但我被困在这个例外。我试图保存一个对象,其中包含一对夫妇列表到我的数据库。该对象被称为DataPointsListResultSet,它包含一个List预测DataPointsList和一个实际的DataPointsList

以下是模型:

(数据点SlistResultSet)

@Entity
public class DataPointsListResultSet {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer resultsetid;

@OneToMany(targetEntity= DataPoints.class, 
mappedBy="dataPointsid",cascade = CascadeType.ALL, 
fetch=FetchType.EAGER)
private List<DataPoints> predictDataPointsList = new ArrayList<>();

@OneToMany(targetEntity= DataPoints.class, mappedBy="dataPointsid", 
cascade = CascadeType.ALL, fetch=FetchType.EAGER)
private List<DataPoints> actualDataPointsList = new ArrayList<>();

//getters and setters

(数据点)

@Entity
public class DataPoints {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer dataPointsid;

double x;
double y;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "resultsetid")
DataPointsListResultSet dataPointsListResultSet;

public DataPoints(){
} 

//getters and setters

下面是Stacktrace的一些示例:

Message Request processing failed; nested exception is 
org.springframework.dao.DataIntegrityViolationException: could not 
execute statement; SQL [n/a]; constraint 
[fk_337ty7afmhvcde8gwkd0sd6bq]; nested exception is 
org.hibernate.exception.ConstraintViolationException: could not 
execute statement

Description The server encountered an unexpected condition that 
prevented it from fulfilling the request.

Exception

org.springframework.web.util.NestedServletException: Request 
processing failed; nested exception is 
org.springframework.dao.DataIntegrityViolationException: could not 
execute statement; SQL [n/a]; constraint 
[fk_337ty7afmhvcde8gwkd0sd6bq]; nested exception is 
org.hibernate.exception.ConstraintViolationException: could not 
execute statement


Root Cause

org.springframework.dao.DataIntegrityViolationException: could not 
execute statement; SQL [n/a]; constraint 
[fk_337ty7afmhvcde8gwkd0sd6bq]; nested exception is 
org.hibernate.exception.ConstraintViolationException: could not 
execute statement

这是执行逻辑的Java方法:

 public DataPointsListResultSet predictPriceOneAhead (MultiLayerNetwork net, List<Pair<INDArray, INDArray>> testData, double max, double min, int exampleLength, String nomeDoConjunto, GeneralStockDataSetIterator iterator) {
    double[] predicts = new double[testData.size()];
    double[] actuals = new double[testData.size()];

    DataPointsListResultSet resultSet = new DataPointsListResultSet();
    List<DataPoints> predictDataPointsList = new ArrayList<>();
    List<DataPoints> actualDataPointsList = new ArrayList<>();
    resultSet.setPredictDataPointsList(predictDataPointsList);
    resultSet.setActualDataPointsList(actualDataPointsList);
    resultSetDao.save(resultSet);


    for (int i = 0; i < testData.size(); i++) {
        predicts[i] = net.rnnTimeStep(testData.get(i).getKey()).getDouble(exampleLength - 1) * (max - min) + min;
        actuals[i] = testData.get(i).getValue().getDouble(0);

        DataPoints predictDataPoint = new DataPoints();
        predictDataPoint.setDataPointsListResultSet(resultSet);

        predictDataPoint.setY(predicts[i]);
        predictDataPoint.setX(i);
        dataPointsDao.save(predictDataPoint);
        predictDataPointsList.add(predictDataPoint);

        DataPoints actuaDataPoint = new DataPoints();
        actuaDataPoint.setDataPointsListResultSet(resultSet);

        actuaDataPoint.setY(actuals[i]);
        actuaDataPoint.setX(i);
        dataPointsDao.save(actuaDataPoint);
        actualDataPointsList.add(actuaDataPoint);
    }

    log.info("Print out Predictions and Actual Values...");
    log.info("Predict,Actual");
    for (int i = 0; i < predicts.length; i++) log.info(predicts[i] + "," + actuals[i]);

    return resultSet;
}

如果有人能对这个问题有所了解,我将不胜感激!

共有1个答案

赵嘉纳
2023-03-14

您可以尝试删除cascade=CascadeType。从您的数据点SlistResultSet实体中删除所有,并在您的案例中手动保存两个实体的操作。

 类似资料:
  • 这是我的实体类 org.springframework.dao.DataIntegrityViolationException:不能执行语句;SQL[N/A];约束[created_at];嵌套异常是org.hibernate.exception.constraintViolationException:在org.springframework.orm.jpa.vendor.hibernatejp

  • 问题内容: 我在Hibernate尝试了简单的程序,并发现了一堆异常。 我不知道到底是什么问题。 我有三个课程-书籍,阅读器和使用。最后一个是将前两个绑定为一对多。 这是我的: 这是异常消息: 的摘要: DB上的所有表均已创建,但为空。一切都还好。有什么建议么? 如何解决这个麻烦? 问题答案: 在MySQL中, USING 是保留字。 因此,只需使用实体上的注释来重命名表即可。就像是 我假设您有一

  • 我得到以下错误,当我尝试添加一个应用程序和应用程序设置。以下是详细的错误消息: 下面是junit测试 这是保存应用程序和设置的方法 这些是DAO类。 这是应用刀 为什么我会得到上面的错误?如果你们需要更多的信息,请告诉我。 更新

  • 我正在通过这个类更新一些值,createdBy和lastModifiedBy的值不是必须更新的。所以,我不是从邮递员那里传递这些值。它接受lastModifiedBy列,但当我不传递createdBy值时,它会显示sql异常。为什么会这样? 控制台如下所示: 在org。springframework。aop。框架反射方法调用。继续(ReflectiveMethodInvocation.java:1

  • 我定义了一个外键。为了检查它,我在具有外键的表中插入了错误的值。未打印任何错误,值已成功添加。我不知道我是否正在运行一些旧版本的sqlite3或类似的东西,我对这个领域是完全陌生的。 创建表ref(value 1 int, value 2,主键(value 1)); 为(value1 int、value3 int、主键(value3)、外键(value1)引用ref(value1))创建表; 插入

  • 由于 Rax 转小程序链路是通过 AST 语法转换的方式将使用 Rax JSX 语法的项目转换到小程序语法的项目,所以受限于实现,我们对开发者使用的语法进行了部分限制(随着转译器的能力增强,限制会越来越少,本篇文档也将持续更新)。 使用限制 静态资源 由于无法识别在 json 文件中配置的静态资源,所以开发者需要指定静态资源的目录,build.json 中的具体配置如下: { "plugins