java - 在 Hibernate 中获取插入的 id 是更好的方法吗?

标签 java hibernate struts2 ognl actionresult

我正在使用 Hibernate 3.0 和 Struts。我使用 @GenerateValue 来生成 id。

当我保存客户详细信息时,我有一个客户屏幕,我想使用 新插入的 customerId 因为仅根据该 ID,我将保存第二页详细信息

为此我正在使用类似

someDAO.save(customer);
customerId = customer.getCustomerId();

我在保存并使用 Struts 2 redirectAction 后获取了客户对象值,我将 customerId 转发到第二页,它工作正常,但我在控制台上收到警告

Caught OgnlException while setting property 'applicationId' on type 'org.apache.struts2.dispatcher.ServletActionRedirectResult'.
ognl.NoSuchPropertyException: org.apache.struts2.dispatcher.ServletActionRedirectResult.applicationId
    at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:132)
    at com.opensymphony.xwork2.util.OgnlValueStack$ObjectAccessor.setProperty(OgnlValueStack.java:68)
    at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:1656)
    at ognl.ASTProperty.setValueBody(ASTProperty.java:101)
    at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:177)
    at ognl.SimpleNode.setValue(SimpleNode.java:246)

最佳答案

你可以忽略这一点的最佳方法,

但是,redirectAction 使用 ActionMapperFactory 提供的 ActionMapper 将浏览器重定向到调用指定操作的 URL,并且(可选)<命名空间。 OGNL 尝试使用源页面上指定的值设置 map html 元素,并将这些值推送到 valuestack 中。有时OGNL尝试将值与在源页面的操作类中指定的 setter 进行映射,但无法设置值并导致警告

您可以尝试显式分配参数来抑制警告:

<result name="showReportResult" type="redirectAction">
     <param name="applicationId">${applicationId}</param>
 </result>

关于java - 在 Hibernate 中获取插入的 id 是更好的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15287221/

相关文章:

java - 从方法中获取变量

java - 从 JTable 中的一行生成标准差图

java - 方法抛出 'org.hibernate.PersistentObjectException' 异常。分离的实体传递到持久化

hibernate - Grails将域类映射到oracle数据库中已经存在的 View

java - java.util.Date 类的 Struts2 类型转换的奇怪行为

java - 如何在 Struts 2 中将 QRCode 图像从操作类发送并显示到 JSP

Java应用范围

java - Java 构造函数中的引用

java - JAVA中的GUI在同一帧中显示不同的图像

mysql - HQL 在子查询和子句中不起作用