java在部署时持久化实体
我目前正在开发一个用于创建和运行模拟的web应用程序。对于这个应用程序,我希望用户能够加载一些设置预设并使用它们。为了实现这一点,我希望在部署时将预设持久化到数据库中,但我似乎找不到合适的方法来实现这一点
对于这个项目,我将使用Wildfly和Hibernate。我知道我可以进口。sql可以做我想做的事情,但这对我的使用来说不是最佳的,因为预设实体有很多属性,这些属性更容易设置为属性。java文件
这是我模拟的一个摘录。java类:
@javax.persistence.Entity
public class Simulation
{
/**
* An automatically generated id
*/
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private int id;
/**
* The simulation name, limited to 255 characters
*/
@NotBlank
@Length(max = 255)
private String name;
/**
* Date the simulation was created
*/
@Temporal(TemporalType.TIMESTAMP)
private Date date;
/**
* Result of the simulation
*/
@OneToOne(cascade = {CascadeType.ALL})
private SimulationResult result;
@Transient
@OneToMany(cascade=CascadeType.ALL)
private List<Consumer> consumers;
@Transient
@OneToMany(cascade=CascadeType.ALL)
private List<Producer> producers;
private int ticks;
private boolean preset;
[...]
如何创建此实例并在部署时将其持久化
# 1 楼答案
您可以创建一个startup类:
在启动方法中,可以创建预设
# 2 楼答案
您可以使用WildFly db引导扩展https://github.com/wildfly-extras/db-bootstrap/blob/master/README.md