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

标签 java sql hibernate hibernate-mapping

我有一个包含大量信息的表格。从 View 页面更新此表时,我没有加载所有信息。

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

HibernateTemplate hibernateTemplateObj = getHibernateTemplate();
        hibernateTemplateObj.update(myEntityBean);

上面是更新字段,但在我的 View 页面上不可见的字段将更新为空白。

所以,我使用了下面的一个......

HibernateTemplate hibernateTemplateObj = getHibernateTemplate();
        hibernateTemplateObj.update("myRequiredField", myEntityBean);

根据文档here它说如果我使用 update("string",entity) 它将更新该字段。但它的工作方式并不一样。

任何人都可以提出建议吗?

<小时/>

我发现了一些帖子。

post1 post2

它说,我需要创建查询。但我不知道如何从中创建查询? 如果有人有任何想法..请帮忙。我认为这些帖子中存在已知问题。

最佳答案

您可以像这样使用 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();

虽然您知道应该从查询中返回什么类型的对象,但您可以转换它并使用它。 您可以编写 native 查询或 hibernate 查询,但我认为 hibernate 查询更容易。

关于java - 更新表的特定字段,而不考虑hibernate中的其他字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10016167/

相关文章:

hibernate - Postgres - 如何将 sum(bigint) 类型转换为 bigint?

java - 如何编写多行HQL代码?

Java、Selenium 中链接捕获器上的 java.lang.NullPointerException

Java 杀死或终止一个线程

sql - RDB$NUL​​L_FLAG 所有列均为空

mysql - MySQL准备语句-如何循环通过

java - @NotNull 和@Nullable,与java 注解相矛盾

java - 无法解析 TreeMap 的方法 tailMap

sql - 您将如何维护 SQL 表中的历史记录?

spring - 如果有@Entity,为什么需要 "annotatedClasses"?