Java 如何在每次连接时在sqlite数据库上启用外键选项

Java 如何在每次连接时在sqlite数据库上启用外键选项,java,hibernate,sqlite,Java,Hibernate,Sqlite,我将hibernate与SQLite一起使用。 我只是创建了一个带有外键约束的模型,当我运行程序时,在数据库上创建的表没有外键。 如上所述,我需要通过运行查询在每次连接到数据库时启用外键支持: PRAGMA foreign_keys = ON; 在hibernate.cfg.xml上有什么解决方案可以做到这一点吗 模型类 @Entity @Table(name = "problem") public class ProblemInstance { @Id @GeneratedValue(str

我将hibernate与SQLite一起使用。 我只是创建了一个带有外键约束的模型,当我运行程序时,在数据库上创建的表没有外键。

如上所述,我需要通过运行查询在每次连接到数据库时启用外键支持:

PRAGMA foreign_keys = ON;
hibernate.cfg.xml
上有什么解决方案可以做到这一点吗

模型类

@Entity
@Table(name = "problem")
public class ProblemInstance {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(columnDefinition="integer")
private int idProblem;
private int numberOfPeriods;
private int numberOfProducts;
private int nominalProductRate;
// cost of preventive replacement
private float cpr;
// cost of minimal replacement
private float cmr;
// time elapsed on a preventive replacement
private double tpr;
// time elapsed on a minimal repair
private double tmr;
@OneToMany(mappedBy="problem", cascade = CascadeType.PERSIST)
private List<Product> products;
// weibull parameters k, lambda
private float kParam;
private float lambdaParam;
}


@Entity
@Table(name = "product")
public class Product implements Cloneable{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(columnDefinition="integer")
private int idProduct;
private float productionCost;
private float holdingCost;
private float backorderCost;
private float setupCost;
@ManyToOne
private ProblemInstance problem;
 }
@实体
@表(name=“problem”)
公共类问题实例{
@身份证
@GeneratedValue(策略=GenerationType.AUTO)
@列(columnDefinition=“integer”)
私人问题;
私人整数周期;
私人产品;
私人名义生产率;
//预防性更换的费用
私人漂浮心肺复苏术;
//最低重置成本
私人浮动cmr;
//预防性更换所用的时间
私人双tpr;
//最小维修所用的时间
私人双tmr;
@OneToMany(mappedBy=“problem”,cascade=CascadeType.PERSIST)
私人上市产品;
//威布尔参数k,λ
私人浮动卡帕兰;
私人浮动lambdaParam;
}
@实体
@表(name=“产品”)
公共类产品实现了可克隆性{
@身份证
@GeneratedValue(策略=GenerationType.AUTO)
@列(columnDefinition=“integer”)
私人产品;
私人浮动生产成本;
私人浮动持有成本;
私人浮动缺货成本;
私人浮动成本;
@许多酮
私人问题;实例问题;
}

如果正确映射实体,并让hibernate从映射的实体生成数据库架构,则会自动创建FK约束。所以,请给我们看你们实体的映射。重复?不,这不是一回事。我正在使用Hibernate来管理数据库