Java 更新表的特定字段,而不考虑hibernate中的其他字段

Java 更新表的特定字段,而不考虑hibernate中的其他字段,java,sql,hibernate,hibernate-mapping,Java,Sql,Hibernate,Hibernate Mapping,我的桌子上有很多信息。从查看页面更新此表时,我没有加载所有信息 下面是我使用hibernate更新表的代码 HibernateTemplate hibernateTemplateObj = getHibernateTemplate(); hibernateTemplateObj.update(myEntityBean); 上面的一个正在更新字段,但是在我的视图页面上不可见的字段将被更新为空白 所以,我用下面的一个 HibernateTemplate hibernateTempl

我的桌子上有很多信息。从查看页面更新此表时,我没有加载所有信息

下面是我使用hibernate更新表的代码

HibernateTemplate hibernateTemplateObj = getHibernateTemplate();
        hibernateTemplateObj.update(myEntityBean);
上面的一个正在更新字段,但是在我的视图页面上不可见的字段将被更新为空白

所以,我用下面的一个

HibernateTemplate hibernateTemplateObj = getHibernateTemplate();
        hibernateTemplateObj.update("myRequiredField", myEntityBean);
根据文档说明,如果我使用update(“string”,entity),它将更新该字段。但它的工作原理不一样

谁能给点建议吗


我找到了一些帖子

它说,我需要创建查询。但我不知道如何从中创建查询?
如果有人知道的话。。请帮忙。我认为这是这些帖子中的已知问题。

您可以使用Session对象创建一个查询,如下所示

    SessionFactory factory= HibernateUtil.getSessionFactory();  
    session = factory.openSession();  
    session.beginTransaction();  
    Query query = session.createQuery("Select c.productList from Cart c Where c.cartId=:cartId"); 
    query.setParameter("cartId", cart.getCartId());
    List productList=(List) query.list();
    session.getTransaction().commit();
虽然您知道应该从查询中返回什么类型的对象,但可以强制转换并使用它。
您可以编写本机查询或hibernate查询,但我认为hibernate查询更容易。

谢谢mbaydar,我对hibernate不太熟悉。所以,我有一个问题。我们可以使用session.createQuery进行DML查询以更新、删除查询吗?实际上,hibernate为您创建了许多查询,您需要做的只是调用hibernates方法。例如,若要删除对象,可以调用session.delete(对象),hibernate将创建查询并从数据库中删除对象。这样可以保存或更新对象。但如果你想自己做,你可以像我的例子一样做。谢谢姆拜达尔。我在更新查询中使用了相同的代码,这很有效。