这是关于struts.xml中的配置:
其余插件建议使用
<constant name="struts.mapper.class" value="rest" />
<constant value="Controller" name="struts.convention.action.suffix" />
<constant value="true" name="struts.convention.action.mapAllMatches" />
<constant value="rest-default" name="struts.convention.default.parent.package" />
<constant value="rest" name="struts.convention.package.locators" />
不再使用包。它们都是通过常规插件计算出来的。 fullhibernate-plugin告诉我使用
<package name="default" extends="hibernate-default">
虽然。
如何集成它以使REST 和运行hibernate?什么是正确的配置?
(目前我收到的是NullPointerException,因为我的Session没有被注入。)
非常感谢你的帮助!
以下是更多背景信息:
我有一个名为“Task”的bean类,它有“Dependees”(全部通过Hibernate管理)
@ManyToMany(fetch=FetchType.LAZY)
@JoinTable(name = "TASKLIST_TASK",
joinColumns = @JoinColumn(name = "TASK_ID"),
inverseJoinColumns = @JoinColumn(name = "TASKLIST_ID"))
private Set<Task> dependees;
这是一个相当大的集合,所以我不想使用FetchType.EAGER(我也不能,因为另一种关系会使它成为周期性的)。当我不使用hibernate插件时,我无法通过JSP访问dependees,因为Action / Controller在JSP呈现之前已经关闭了会话,然后延迟提取不起作用。 因此我需要hibernate插件 - 在呈现jsp之后关闭会话。
问题是我不知道如何告诉hibernate插件它应该将会话对象注入我的类。它已经注释了(我猜)但是hibernate插件只是不看它。
public class TaskDAO {
@SessionTarget
Session session;
@TransactionTarget
Transaction transaction;
...
}
如果这是一个问题:我尽可能在xml上使用注释...
我认为我只需要正确配置其余的和hibernate插件来完成他们的工作(同时)!
答案 0 :(得分:0)
好!我缺少的部分是行
<constant value="hibernate-default" name="struts.convention.default.parent.package" />
为每个REST控制器提供hibernate-default包!
使用hibernate-4.1重新编译fullhibernate-plugin后,我现在可以使用它了。懒惰的初始化暂不起作用,但我更进了一步: - )