我有一个事务性的警报表和一个主警报类型表。每当向表中添加警报时,我都想发送一封电子邮件,所以我想我应该使用PrePersist。但是,在我的电子邮件中,我想包含一些包含在警报类型表中的信息。
我试图在Alert类中添加对AlertTypeRepository的引用,但无法添加,因为我的Alert类是@表,而AlertTypeRepository不是列。
下面是我的警觉课

@Entity
@Table
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class Alert {
    @Id
    @GeneratedValue
    int id;
    @Column
    String name;
    @Column
    String alertTypeId;
    @Column
    String detailedMessage;
    @Column
    String status;
    @Temporal(TemporalType.TIMESTAMP)
    Date time;
}

下面是我的AlertType类
@Entity
@Table
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class AlertType {
    @Id
    @GeneratedValue
    int id;
    @Column
    String name;
    @Column
    String header;
    @Column
    String footer;
    @Column
    String summary;
    @Column
    String deliveryType;
    @Column
    Boolean active ;
    @Column
    String recipients;
}

我想在Alert类中有一个PrePersist函数。它允许我从AlertType类访问其相应的页眉和页脚。

最佳答案

我想出了一个解决办法,所以我希望这能帮助任何面临类似问题的人。基本上,我必须创建一个EntityListener到Alert类,然后添加以下类。

@Component
public class AlertListener {

    static AlertTypeRepository alertTypeRepository;

    @Autowired
    public void init(AlertTypeRepository alertTypeRepository)
    {
         this.alertTypeRepository = alertTypeRepository;

    }

    @PrePersist
    public void prePersist(Alert alert) {
        List<AlertType> alertType=  this.alertTypeRepository.findAll();

    }
}

07-25 22:14