有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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;
[...]

如何创建此实例并在部署时将其持久化


共 (2) 个答案

  1. # 1 楼答案

    您可以创建一个startup类:

    @Singleton
    @Startup
    public class StartupBean {
    
       @PostConstruct
       private void startup() { ... }
    
    }
    

    在启动方法中,可以创建预设