jjzjj

javassist

全部标签

java - 如何避免在 Hibernate 中获取 javassist 惰性实体代理实例

我必须更改什么才能避免Hibernate给我惰性javassist实例代理而不是真正的实体?更新:我正在使用Spring3.x和Hibernate4.x我用来加载实体的API是org.hibernate.internal.SessionImpl#load(Person.class,Id)并且映射很简单: 最佳答案 使用get()而不是load(). 关于java-如何避免在Hibernate中获取javassist惰性实体代理实例,我们在StackOverflow上找到一个类似的问题:

java - 使用 javassist 在运行时强制所有 Java 算术为 strictfp?

鉴于在编写时考虑了性能的Java应用程序(即方法在源代码中有意未声明为“strictfp”),是否可以允许用户在strictfp模式下运行整个应用程序?看起来粗略的方法是使用使用javassist编写的自定义类加载器简单地将“strictfp”属性添加到所有类的所有方法。这类似于:http://www.verious.com/qa/no-strictfp-in-scala-workarounds/但是,类加载器需要将strictpf属性添加到应用程序中的所有类方法,包括私有(private)方法。(应用程序太大太复杂,无法显式列出可能需要strictfp属性的所有可能方法。)javas

java - 在运行时在 pre-main 方法中使用 javassist 重命名字段(java 检测)

我想在运行时重命名java类中的字段。此外,访问该字段的任何方法;无论是读还是写;我需要修改它以使用新名称而不是旧名称....所有这些都将在pre-main方法中完成...作为一个例子,给定以下代码:publicclassClass1{StringstrCompany;publicStringTest(){strCompany="TestCompany";returnstrCompany;}}在上面的类中,我需要将字段“strCompany”更改为“strCompany2”,此外我还需要方法Test来使用新名称而不是旧名称....可以使用ctField类中的setName方法更改字段名

java - 如何使用 Javassist 删除方法?

我正在尝试使用Javassist从类文件中删除一个方法。目标类:“RemoveMethod”。目标方法:“DoubleCheck”。我的代码:packagejavassist;importjava.io.IOException;importjava.lang.reflect.Method;importjavassist.*;publicclasscRepair{publicstaticvoidmain(String[]args)throwsNotFoundException,IOException,CannotCompileException{ClassPoolpool=ClassPo

java - ClassCastExceptions 由于在 WebSphere 8.5.5 应用程序容器中升级到 hibernate 4.2.8

我们最近将hibernate从4.0.1升级到4.2.8.Final。Hibernate.4.2.8.Final依赖于javassist-3.18.1-GA。不幸的是,websphere是8.5.5未随最新的javassist一起提供,但这不是我的问题。我试图强制websphere获取我的javassistjar,但我失败了(出于某种原因,它总是从${WAS_INSTALL_ROOT}/plugins加载)。我尝试了什么?在websphere控制台中首先使用本地类加载器加载类(父类最后加载),WEB-INF/lib包含最新的javassistjar。但是应用程序不工作将最新的javas

java - 将代理附加到现有对象?

我的计划是编写一个基于注解的缓存框架来缓存方法的返回值。当第一次使用特定参数调用方法时,缓存应存储方法返回值。当使用相同的参数第二次调用相同的方法时,该方法应该从缓存中返回先前计算的结果,而不是再次执行其代码。我的注释看起来像这样:@Cached(cacheProvider=HashMapCacheProvider.class)publicProductgetProduct(StringproductId){//Scrapingtheproductfromawebsite...returnproduct;}目前我的小框架运行良好。我正在使用Javassist创建包含注释方法的类的代理对

java - 获取 Javassist 类型而不是实际的 Hibernate 实体类型

我偶然发现了一个非常烦人的情况:我使用Hibernate和Spring作为我的应用程序的后端,似乎在某些情况下,与特定实体有关系的实体不会作为普通实体对象从数据库,但作为Javassist类型。例如:我的Campaign实体具有以下关系:@Entity@Table(name="campaign")publicclassCampaignimplementsSerializable{[..]@ManyToMany(fetch=FetchType.LAZY)@JoinTable(uniqueConstraints=@UniqueConstraint(columnNames={"campaig

java - 如何强制 Hibernate 3.3 或 3.5 使用 CGLib 而不是 Javassist?

是否仍然可以强制Hibernate3.3或3.5使用CGLib而不是Javassist?在我的属性文件中,我设置了hibernate.bytecode.provider=cglib但这好像不行。有什么想法吗? 最佳答案 似乎有些人没有正确阅读我的回答,所以我会重新措辞:您的hibernate.properties看起来是正确的,该属性定义明确,它应该可以工作。所以,很抱歉这个问题,但是CGlib在类路径上吗?更新:刚刚测试并且对我有效。这是我在初始化时得到的输出:15[main]INFOorg.hibernate.cfg.Envir

java - 如何使用 Javassist 获取原始类型的类?

在我的程序中,我处理类和原始类型。如果程序找到一个类,它只需执行以下调用之一:Class.forName(类名)cc.toClass()其中cc是CtClass的实例但是,如果它找到原始类型,事情就会变得更糟:Class.forName不可用,它不能与原始类型一起使用。cc.toClass()返回null可以从原始类型包装器类调用TYPE字段,但我如何使用反射来调用它?这是我的代码:CtClasscc;//ObtainedfromcallercodeClassclassParam;if(cc.isprimitive()){classParam=??//HowcanIgetTYPEfie

hibernate 中的 Javassist 失败 : invalid constant type: 60

我正在创建一个cli工具来管理现有的应用程序。应用程序和测试都构建良好并运行良好,但尽管我在运行jar中存在的cli工具时收到javassist失败:INFO:Bytecodeprovidername:javassist...INFO:HibernateEntityManager3.5.1-FinalExceptioninthread"main"javax.persistence.PersistenceException:UnabletoconfigureEntityManagerFactoryatorg.hibernate.ejb.Ejb3Configuration.configur