Java 更新多对一休眠关系无效

Java 更新多对一休眠关系无效,java,hibernate,jpa,Java,Hibernate,Jpa,我对hibernate多对一关系有问题 我的系统是商业提案控制器,其中有一个负责来自用户实体的提案。当提案被创建并设置为负责人时,没有问题,工作正常。但当更改负责人和更新时,它会更改对象,我可以在datatable中看到,但在数据库中没有更新。如果我在页面上刷新,更新将消失 @Entity @Table(name = "proposal") public class Proposal implements Serializable { @Id @Gene

我对hibernate多对一关系有问题

我的系统是商业提案控制器,其中有一个负责来自用户实体的提案。当提案被创建并设置为负责人时,没有问题,工作正常。但当更改负责人和更新时,它会更改对象,我可以在datatable中看到,但在数据库中没有更新。如果我在页面上刷新,更新将消失

    @Entity
    @Table(name = "proposal")
    public class Proposal implements Serializable {

    @Id
    @GeneratedValue
    private Integer id;

    @ManyToOne
    private User responsible;
   ............      
DAO代码

    public void update(Proposal proposal) {
    this.session.update(proposal);

    }
在User类中,我没有对这种关系做任何注释,它是一种单向关系。课程提案还使用用户类作为参与者制作用户包,这种关系也将是单向关系

我试图在用户类中进行注释,但也没有效果

带有注释的用户类

   @Entity
   @Table(name="user") 
   public class User implements Serializable{

    @OneToMany 
    private List<Proposal> proposal;
有人对此有什么想法吗


谢谢

刷新数据库后,您将看到更改。手动刷新或提交事务后刷新。用户类-必须是既需要@entity注释又需要@Id注释的实体,或者是可嵌入类,并且在这种情况下应以相应的方式进行配置

如果您说-@Entity而用户没有@Id,我不确定它是如何工作的,但请重试:

为用户运行flush。如果你不会得到任何异常-它是一个可扩展的对象。您应该在db/web应用程序日志文件中看到-sql插入查询。 提交事务。应提交用户的更新值。
如果在提交之前调用refresh,所有更改都将丢失。

在我看来,您与用户的多通关系中缺少@JoinColumn注释。尝试更新到以下位置:

@ManyToOne
@JoinColumn(name="userId")
private User responsible;

但显然,将“userId”替换为表中指定的id名称。

如果用户或建议类上都没有JoinColumn或MappedBy注释,如何告诉Hibernate如何解决关系?
@ManyToOne
@JoinColumn(name="userId")
private User responsible;