问题列表 - 第14618页

为什么不使用Spring的OpenEntityManagerInViewFilter

虽然很多帖子都是关于Spring的OpenSession/EntityManagerInViewFilter的主题写的,但我找不到任何提到它的缺陷.根据我的理解,并假设使用@Transactional服务层的典型分层Web应用程序架构,过滤器的工作方式如下:

  1. 过滤器拦截servlet请求
  2. 过滤器打开EntityManager并将其绑定到当前线程
  3. 调用Web控制器
  4. Web控制器调用服务
  5. 事务拦截器开始一个新事务,检索线程绑定的EntityManager并将其绑定到事务
  6. 调用Service,用EntityManager做一些东西,然后返回
  7. 事务拦截器刷新EntityManager然后提交事务
  8. Web控制器准备视图,然后返回
  9. 视图已构建
  10. Filter关闭EntityManager并将其与当前线程解除绑定

在步骤8和9中,仍然管理由线程的EntityManager加载的对象.因此,如果在这些步骤中触及了惰性关联,则将使用仍然打开的EntityManager从数据库加载它们.据我所知,每次这样的访问都要求数据库打开一个事务.Spring的事务管理将不会意识到这一点,因此我将其称为"隐式事务".

我看到2个问题:

  1. 加载多个惰性关联将导致多个数据库事务,这可能会影响性能
  2. 根对象及其惰性关联被加载到不同的数据库事务中,因此数据可能是陈旧的(例如,由线程1加载的根,由线程2更新的根关联,由线程1加载的根关联)

一方面,这两个问题似乎足以拒绝使用此过滤器(性能损失,数据不一致).另一方面,这个解决方案非常方便,避免编写几行代码,问题1可能不那么引人注意,问题2可能是纯粹的偏执狂.

你怎么看?

谢谢!

spring hibernate lazy-loading

37
推荐指数
1
解决办法
2万
查看次数

从MySQL列创建PHP数组

mysql_fetch_array会给我一个获取行的数组.从一列中所有行的值生成数组的最佳方法是什么?

编辑:很多很棒的答案.谢谢大家回复!我最终得到了类似于Gumbo和GSto建议的解决方案.我给了GSto答案点,因为他得分较少(只是帮助小家伙,没有个人).

php mysql arrays

17
推荐指数
2
解决办法
9万
查看次数

PowerShell cmdlet参数验证

我正在编写自定义PowerShell cmdlet,我想知道哪种方法可以验证参数.
我认为这可以在属性集访问器中或在Cmdlet执行期间完成:

[Cmdlet(VerbsCommon.Add,"X")]
public class AddX : Cmdlet {

    private string _name;

    [Parameter(
        Mandatory=false,
        HelpMessage="The name of the X")]
    public string name {
        get {return _name;}
        set {
            // Should the parameter be validated in the set accessor?
            if (_name.Contains(" ")) { 
                // call ThrowTerminatingError
            }
            _name = value;
        }
    }

    protected override void ProcessRecord() {
        // or in the ProcessRecord method?
        if (_name.Contains(" ")) {
            // call ThrowTerminatingError
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

哪种是"标准"方法?属性设置器,ProcessRecord还是完全不同的东西?

c# validation powershell cmdlets

4
推荐指数
1
解决办法
2523
查看次数

什么是遗传算法/遗传编程解决方案的好例子?

遗传算法(GA)和遗传规划(GP)是有趣的研究领域.

我想知道你使用GA/GP解决的具体问题,以及你没有使用自己的库/框架.

问题:

  • 您使用GA/GP解决了哪些问题?
  • 您使用了哪些库/框架?

我正在寻找第一手经验,所以除非你有这个经验,否则请不要回答.

algorithm artificial-intelligence genetic-algorithm evolutionary-algorithm

226
推荐指数
15
解决办法
12万
查看次数

在jQuery中,如果删除一个元素,它上面的任何事件都会被删除吗?

例如,如果我有一个绑定了以下事件的链接:

$("a.d").bind("click", this, onDelete);
Run Code Online (Sandbox Code Playgroud)

后来做:

$("a.d").remove();
Run Code Online (Sandbox Code Playgroud)

那很好吗?或者它是否会导致内存泄漏,我需要调用unbind 1st?

谢谢你的帮助.

jquery event-binding

4
推荐指数
1
解决办法
200
查看次数

如何对打印到屏幕的Perl函数进行单元测试?

我正在尝试使用Test :: More来测试打印到屏幕的Perl函数.

我知道这个输出可能会干扰诸如证明之类的工具.

如何捕获此输出以便我可以打印它diag(),并在输出本身上运行测试?

testing perl unit-testing

34
推荐指数
3
解决办法
4055
查看次数

从请求中获取所有发布数据

有没有办法将所有POST数据发送到.NET网页?

基本上我正在寻找相当于PHP $ _POST数组

目的是我收到客户的请求,我无法控制并需要在不知道密钥的情况下获取所有数据.

asp.net

7
推荐指数
1
解决办法
2万
查看次数

foreach()是否通过引用迭代?

考虑一下:

List<MyClass> obj_list = get_the_list();
foreach( MyClass obj in obj_list )
{
    obj.property = 42;
}
Run Code Online (Sandbox Code Playgroud)

'obj'是对列表中相应对象的引用,这样当我更改属性时,更改将在构造到某处的对象实例中持续存在吗?

c# foreach reference

64
推荐指数
6
解决办法
4万
查看次数

QGraphicsView自动放置物品

我想用QGraphicsView编写一个资产浏览器.它与使用QGraphicsView和QGraphicsItems的示例略有不同,因为我只想要一个滚动条,并且我希望项目在视口大小更改时自动移动.例如,当视口宽度足够大以显示4个asssets时,它们应显示如下:

aaaa
aaaa
aa
Run Code Online (Sandbox Code Playgroud)

但是当视口缩小并且连续只能包含3时,它应该显示如下:

aaa
aaa
aaa
a
Run Code Online (Sandbox Code Playgroud)

我不想自己移动这些资产,让图形视图管理它们.它有可能吗?

我曾写过一次这样的事情,但是使用QWidget和paintEvent,自己绘制所有资产并跟踪可以连续显示的资产数量.使用QGraphicsView可以更简单吗?

python qt pyqt qgraphicsview

3
推荐指数
1
解决办法
1925
查看次数

如何覆盖 WPF 文本框上的复制命令?

我想重写 WPF 文本框的 RoutedUICommand“复制”行为。

是否可以不创建一个继承自 TextBox 的新 TextBoxExtended 类?

我已经达到了这一点,但现在我有点迷失了。

Private Sub tbSource_PreviewExecuted(ByVal sender As System.Object, ByVal e As System.Windows.Input.ExecutedRoutedEventArgs)

        Dim commandName = DirectCast(e.Command, Input.RoutedUICommand).Text

        If commandName = "Copy" Then

        End If

End Sub
Run Code Online (Sandbox Code Playgroud)

您知道如何继续吗?

routed-commands wpf-controls

3
推荐指数
1
解决办法
3617
查看次数