首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以从Hibernate中的XML映射文件中调用一些方法吗?

我可以从Hibernate中的XML映射文件中调用一些方法吗?
EN

Stack Overflow用户
提问于 2015-07-14 22:33:42
回答 1查看 41关注 0票数 0

我有一些xml映射文件。我可以从中调用一些方法吗?

想法:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping
    PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    <class name="pkg.SomeItem" table="item">

        <id name="itemId" column="itemId" unsaved-value="0">
            <generator class="increment"/>
        </id>

        <property name="fileSize" invoke="MyFileManager.getActualFileSize(itemId);"/>
    </class>
</hibernate-mapping>
EN

回答 1

Stack Overflow用户

发布于 2015-07-15 01:24:05

使用Reflection

代码语言:javascript
复制
// my xml parsing code is incorrect; for illustration purposes only
String className = xml.getElement("class").getAttribute("name").getValue();
String methodName = xml.getAttribute("invoke").getValue();

// get generic instance of class
Class<?> c = Class.forName(className);
Object o = c.newInstance();

// get cast instance
// (although 'f' is of type Object, it will show methods of desired class!)
Object f = c.cast(o);

Method[] methods = f.getClass().getMethods();

for (Method method:methods)
{
    if (method.equals(methodName))
    {
        // invoke desired method
        method.invoke(arg0, arg1);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31409639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档