标签: initialization

hibernate:LazyInitializationException:无法初始化代理

这是让我感到困惑的一个.我正在尝试实现一个基本的Hibernate DAO结构,但是遇到了问题.

这是基本代码:

int startingCount = sfdao.count();
sfdao.create( sf );
SecurityFiling sf2 = sfdao.read( sf.getId() );
sfdao.delete( sf );
int endingCount = sfdao.count();

assertTrue( startingCount == endingCount );
assertTrue( sf.getId().longValue() == sf2.getId().longValue() );
assertTrue( sf.getSfSubmissionType().equals( sf2.getSfSubmissionType() ) );
assertTrue( sf.getSfTransactionNumber().equals( sf2.getSfTransactionNumber() ) );
Run Code Online (Sandbox Code Playgroud)

它在第三个assertTrue上失败,它试图将sf中的值与sf2中的相应值进行比较.这是例外:

org.hibernate.LazyInitializationException: could not initialize proxy - no Session
    at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:86)
    at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:140)
    at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:190)
    at com.freightgate.domain.SecurityFiling_$$_javassist_7.getSfSubmissionType(SecurityFiling_$$_javassist_7.java)
    at com.freightgate.dao.SecurityFilingTest.test(SecurityFilingTest.java:73)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:40)
Run Code Online (Sandbox Code Playgroud)

hibernate initialization lazy-evaluation

70
推荐指数
4
解决办法
20万
查看次数

Objective-C中的静态构造函数等效?

我是Objective C的新手,我无法确定语言中是否存在等效的静态构造函数,这是类中的静态方法,将在此类的第一个实例之前自动调用被实例化.或者我是否需要自己调用初始化代码?

谢谢

static initialization objective-c initializer

70
推荐指数
3
解决办法
2万
查看次数

PHP可以将类的名称中的对象实例化为字符串吗?

如果类名存储在字符串中,PHP是否可以从类的名称实例化对象?

php initialization class object

70
推荐指数
4
解决办法
3万
查看次数

正确初始化C++结构的方法

我们的代码涉及一个POD(Plain Old Datastructure)结构(它是一个基本的c ++结构,其中包含其他结构和POD变量,需要在开始时进行初始化.)

根据我所读到的,似乎:

myStruct = (MyStruct*)calloc(1, sizeof(MyStruct));
Run Code Online (Sandbox Code Playgroud)

应该将所有值初始化为零,如下所示:

myStruct = new MyStruct();
Run Code Online (Sandbox Code Playgroud)

但是,当以第二种方式初始化结构时,Valgrind后来抱怨"当使用这些变量时,条件跳转或移动取决于未初始化的值".我的理解是否存在缺陷,或者Valgrind是否会误报?

c++ struct valgrind initialization calloc

70
推荐指数
1
解决办法
17万
查看次数

在C++类中初始化静态变量?

我注意到我的一些函数实际上没有访问对象,所以我创建了它们static.然后编译器告诉我他们访问的所有变量也必须是静态的 - 到目前为止,这是可以理解的.我有一堆字符串变量,如

string RE_ANY = "([^\\n]*)";
string RE_ANY_RELUCTANT = "([^\\n]*?)";
Run Code Online (Sandbox Code Playgroud)

在课堂上等等.然后我做了所有static const因为他们永远不会改变.但是,如果我将它们移出类,我的程序只会编译:否则,MSVC++ 2010会抱怨"只有静态常量变量可以在类中初始化".

那很不幸.有解决方法吗?我想把它们留在他们所属的班级里面.

c++ static initialization

69
推荐指数
7
解决办法
24万
查看次数

平凡与标准布局与POD

通俗地说,琐碎类型,标准布局类型和POD之间有什么区别?

具体来说,我想确定是否new Tnew T()任何模板参数不同T.哪种类型的性状is_trivial,is_standard_layout而且is_pod我应该选择?

(作为一个附带问题,可以在没有编译器魔法的情况下实现任何这些类型特征吗?)

c++ constructor initialization pod type-traits

69
推荐指数
2
解决办法
8729
查看次数

何时执行类的静态块?

我有2个罐子,我们称之为a.jar和b.jar.

b.jar取决于a.jar.

在a.jar中,我定义了一个类,我们称之为StaticClass.在StaticClass中,我定义了一个静态块,调用名为"init"的方法:

public class StaticClass {
  static {
    init();
  } 

  public void static init () {
    // do some initialization here
  }
}
Run Code Online (Sandbox Code Playgroud)

在b.jar中,我有一个main,所以在main中,我希望已经调用了init()方法,但实际上并没有.我怀疑是因为静态类没有被jvm加载,任何人都可以告诉我

  1. 我的结论是否正确?
  2. 触发jvm加载类的原因是什么?
  3. 如何自动执行静态块?

谢谢

java initialization

69
推荐指数
3
解决办法
6万
查看次数

Swift中UIViewController的自定义初始化,故事板中的界面设置

我有为UIViewController的子类编写自定义init的问题,基本上我想通过viewController的init方法传递依赖,而不是直接设置属性 viewControllerB.property = value

所以我为我的viewController做了一个自定义初始化,并调用超级指定的init

init(meme: Meme?) {
        self.meme = meme
        super.init(nibName: nil, bundle: nil)
    }
Run Code Online (Sandbox Code Playgroud)

视图控制器界面位于故事板中,我还将自定义类的界面作为我的视图控制器.即使你没有在这个方法中做任何事情,Swift也需要调用这个init方法.否则编译器会抱怨......

required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }
Run Code Online (Sandbox Code Playgroud)

问题是当我尝试调用我的自定义init时,MyViewController(meme: meme)它根本不在我的viewController中初始化属性...

我试图调试,我在我的viewController中找到,先init(coder aDecoder: NSCoder)调用,然后调用我的自定义init.但是这两个init方法返回不同的self内存地址.

我怀疑有毛病初始化为我的viewController,它总是会返回selfinit?(coder aDecoder: NSCoder),其中,有没有实现.

有谁知道如何正确地为您的viewController制作自定义初始化?注意:我的viewController接口是在storyboard中设置的

这是我的viewController代码:

class MemeDetailVC : UIViewController {

    var meme : Meme!

    @IBOutlet weak var editedImage: UIImageView!

    // TODO: incorrect init
    init(meme: Meme?) {
        self.meme = meme
        super.init(nibName: nil, bundle: nil)
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: …
Run Code Online (Sandbox Code Playgroud)

initialization uiviewcontroller ios swift

69
推荐指数
6
解决办法
5万
查看次数

声明中的新C++ 11成员初始化功能是否使初始化列表过时了?

使用C++ 11,我们现在可以在头声明中初始化类成员:

class aClass
{
    private:
        int mInt{100};
    public:
         aClass();
        ~aClass();
};
Run Code Online (Sandbox Code Playgroud)

所以我有点困惑.传统上,构造函数中的初始化列表已用于成员初始化:

aClass::aClass()
: mInt(100)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

声明中的新C++ 11成员初始化功能是否使初始化列表过时了?如果没有,一个优于另一个的优势是什么?什么情况会使声明初始化有利,或初始化列表有利?应该何时使用另一个?

c++ constructor initialization declaration c++11

68
推荐指数
3
解决办法
4万
查看次数

为什么.class不会调用类中的静态块?

这是我的代码:

public class StupidClass {
    static {
        System.out.println("Stupid class loaded!");
    }
}
Run Code Online (Sandbox Code Playgroud)

我的测试,我分开运行.

import org.junit.Test;

public class StupidTest {
    @Test
    public void foo() throws ClassNotFoundException {
        final Class<?> stupidClass = Class.forName("StupidClass");
        System.out.println(stupidClass.getSimpleName());
    }

    @Test
    public void bar() throws ClassNotFoundException {
        final Class<StupidClass> stupidClassClass = StupidClass.class;
        System.out.println(stupidClassClass.getSimpleName());
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行test foo时,我会看到:

Stupid class loaded!
StupidClass
Run Code Online (Sandbox Code Playgroud)

但是,当我运行测试栏时,我看到的是:

StupidClass
Run Code Online (Sandbox Code Playgroud)

这个页面引用..

类对象由Java虚拟机在加载类时自动构造,并通过调用类加载器中的defineClass方法来构造.

所以我的理解是,在测试栏中,Stupid类被加载,否则我会看到一个null我猜?因此创建了Class对象,因为类本身已被加载.

现在引用这个页面

当JVM(类加载器 - 要特定)加载StaticClass(第一次在代码中引用时出现)时,运行静态初始化块.

所以我期待看到"愚蠢的课程加载!" 测试栏中的文字也是,但我不是.

同样引用Thinking in Java

Candy,Gum和Cookie中的每个类都有一个静态子句,该子句在第一次加载类时执行.

这似乎不是很准确.. …

java static initialization class

68
推荐指数
2
解决办法
2186
查看次数