Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 审计环境在中介类中的使用_Hibernate_Jpa_Hibernate Envers - Fatal编程技术网

Hibernate 审计环境在中介类中的使用

Hibernate 审计环境在中介类中的使用,hibernate,jpa,hibernate-envers,Hibernate,Jpa,Hibernate Envers,我对Envers(历史创造者)在Mediator类中的应用表示怀疑 问题是,当关系中的对象更改值时,如何在中介类中应用审计 例如,在我的类ProjectMediator中,我遇到以下情况: @Entity @NamedQueries({ @NamedQuery(name = "ProjectMediator.findProjectMediatorByIdProject", query = "SELECT pm FROM ProjectMed

我对Envers(历史创造者)在Mediator类中的应用表示怀疑

问题是,当关系中的对象更改值时,如何在中介类中应用审计

例如,在我的类ProjectMediator中,我遇到以下情况:

@Entity
@NamedQueries({
        @NamedQuery(name = "ProjectMediator.findProjectMediatorByIdProject",
                    query = "SELECT pm FROM ProjectMediator pm WHERE pm.project.id = :idProject") 
                            })
@Audited
public class ProjetMediator implements Serializable {

    private static final long serialVersionUID = 1L;

    public static final String FIND_PROJECT_BY_ID_PROJECTMEDIATOR = "ProjectMediator.findProjectMediatorByIdProject";

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @OneToOne
    @JoinColumn(name="id_project")
    private Project project;


    @ManyToMany( targetEntity=Task.class, fetch=FetchType.LAZY )
    private List<Task> tasks;

    @ManyToMany( targetEntity=Activite.class, fetch=FetchType.LAZY )
    private List<Acitvity> activities;

    @ManyToMany( targetEntity=Phase.class, fetch=FetchType.LAZY )
    private List<Phase> phases;
   //get and sets }
@实体
@命名查询({
@NamedQuery(name=“ProjectMediator.findProjectMediatorByIdProject”,
query=“从ProjectMediator pm中选择pm,其中pm.project.id=:idProject”)
})
@审计
公共类ProjetMediator实现可序列化{
私有静态最终长serialVersionUID=1L;
公共静态最终字符串FIND_PROJECT_BY_ID_PROJECTMEDIATOR=“PROJECTMEDIATOR.findProjectMediatorByIdProject”;
@身份证
@GeneratedValue(策略=GenerationType.AUTO)
私人长id;
@奥内托内
@JoinColumn(name=“id\u项目”)
私人项目;
@ManyToMany(targetEntity=Task.class,fetch=FetchType.LAZY)
私有列表任务;
@ManyToMany(targetEntity=Activite.class,fetch=FetchType.LAZY)
私人名单活动;
@ManyToMany(targetEntity=Phase.class,fetch=FetchType.LAZY)
私人名单阶段;
//获取并设置}
我需要在Phase对象改变值时创建一个历史,因此历史需要ProjectMediator的id、id阶段和数据阶段

有人知道如何创造这样的东西吗


非常感谢你

不只是审核阶段就行了吗?@adamw可能是的,我认为使用这个想法是因为,例如,如果我想知道这个阶段的项目相关性,我只需要获得ProjectMediator id和项目id。因此,我在数据库中保存了一个“一”研究。你在想什么?(对不起我的英语)我不确定我是否听懂了你说的话:)