Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate-在预加载事件时使字段处于瞬态状态_Java_Hibernate_Reflection - Fatal编程技术网

Java Hibernate-在预加载事件时使字段处于瞬态状态

Java Hibernate-在预加载事件时使字段处于瞬态状态,java,hibernate,reflection,Java,Hibernate,Reflection,我有一个非常复杂的实体,我希望分两个阶段加载: 加载所有业务数据 加载所有元数据 我想分开装货 我能否仅使用反射API在运行时将字段声明为@Transient? 我尝试使用预加载事件,但找不到如何设置字段瞬态 谢谢 Idob您不能在运行时使用反射更改Java中的任何注释。关于如何使用Javassist添加注释的一个示例是。您不能在运行时使用反射更改Java中的任何注释。关于如何使用Javassist添加注释的示例如下。1)注释信息是java类信息的一部分。您不能在运行时进行更改。 当然,您可以生

我有一个非常复杂的实体,我希望分两个阶段加载:

  • 加载所有业务数据
  • 加载所有元数据
  • 我想分开装货

    我能否仅使用反射API在运行时将字段声明为@Transient? 我尝试使用预加载事件,但找不到如何设置字段瞬态

    谢谢
    Idob

    您不能在运行时使用反射更改Java中的任何注释。关于如何使用Javassist添加注释的一个示例是。

    您不能在运行时使用反射更改Java中的任何注释。关于如何使用Javassist添加注释的示例如下。

    1)注释信息是java类信息的一部分。您不能在运行时进行更改。 当然,您可以生成一些字节码生成工具:或者在运行时生成类并加载适当的实体实现。但它看起来像是丑陋的黑客。此外,该解决方案相当复杂且不稳定

    2) 尽量不要在应用程序中进行黑客攻击并增加复杂性。最好重构现有的域模型。考虑Wy,你需要几个固定的表示域。 3) 此外,若您确实需要实体的弱结构,您可以将实体序列化为XML或二进制格式,并以文本(或者您的DB支持)或Blob的形式存储在DB中


    如果你有一个LaZyPrimalIALIZATION异常的问题,并且开发Web应用程序,尝试考虑模式。Hibernate将为每个请求创建一个Hibernate会话。因此,您可以在一个请求中使用Hibernate对象进行操作,而不必考虑LazyInitializationException。

    1)注释信息是java类信息的一部分。您不能在运行时进行更改。 当然,您可以生成一些字节码生成工具:或者在运行时生成类并加载适当的实体实现。但它看起来像是丑陋的黑客。此外,该解决方案相当复杂且不稳定

    2) 尽量不要在应用程序中进行黑客攻击并增加复杂性。最好重构现有的域模型。考虑Wy,你需要几个固定的表示域。 3) 此外,若您确实需要实体的弱结构,您可以将实体序列化为XML或二进制格式,并以文本(或者您的DB支持)或Blob的形式存储在DB中



    如果你有一个LaZyPrimalIALIZATION异常的问题,并且开发Web应用程序,尝试考虑模式。Hibernate将为每个请求创建一个Hibernate会话。因此,您可以在一个请求中使用Hibernate对象进行操作,而不必考虑LazyInitializationException。

    您不是在说懒惰而不是暂时的吗?您不是在说懒惰而不是暂时的吗?我认为他也应该考虑懒惰加载