0

这是关于我的 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休眠运行?什么是正确的配置?

(目前我得到一个 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(我也不能,因为另一个关系会使它成为周期性的)。当我不使用休眠插件时,我无法通过 JSP 访问依赖项,因为 Action/Controller 在 JSP 呈现之前已经关闭了会话,然后延迟获取不起作用。因此,我需要休眠插件——在呈现 jsp后关闭会话。

问题是我不知道如何告诉休眠插件它应该将会话对象注入我的类。它已经被注释了(我猜)但是休眠插件只是不看它。

public class TaskDAO {

@SessionTarget
Session session;

@TransactionTarget
Transaction transaction;

...
}

如果这是一个问题:我尽可能在 xml 上使用注释......

我想我只需要正确配置其余的和休眠插件来完成他们的工作(同时)!

4

1 回答 1

0

好的!我缺少的部分是这条线

<constant value="hibernate-default" name="struts.convention.default.parent.package" />

这为每个 REST 控制器提供了 hibernate-default 包!

用 hibernate-4.1 重新编译 fullhibernate-plugin 后,我现在可以使用它了。延迟初始化仍然不起作用,但我更进一步:-)

于 2013-03-20T00:19:52.620 回答