NutzCN Logo
问答 获取iocbean
发布于 3025天前 作者 qq_7e14da0b 2349 次浏览 复制 上一个帖子 下一个帖子
标签: ioc

在nutz中能不能只传递一个string 的名称 就能获取相关的实体,并操作?
比如实体是sysdict @Table("sys_dict") 如何通过tablename 获取主键和类呢?

2 回复

文不对题...

NutDao内部只保存了 Pojo --> Entity-->TableName/ViewName的关系, 没有反查, 原因是:
* 一个Pojo仅在第一次使用时才解析为Entity, 不像Hibernate那样需要先全部声明
* @Table是支持动态表名的哦,所以Entity->TableName事实上是一对多的关系

不过,方法总是有的,参考Daos.createTablesInPackage方法的思路

	public static void createTablesInPackage(Dao dao, String packageName, boolean force) {
		for (Class<?> klass : Scans.me().scanPackage(packageName)) {
			if (klass.getAnnotation(Table.class) != null)
				dao.create(klass, force);
		}
	}

改造一下


public static Map<String, Class<?>> getTableNameMap(Dao dao, String packageName) { Map<String, Class<?>> map = new HashMap<>(); for (Class<?> klass : Scans.me().scanPackage(packageName)) { if (klass.getAnnotation(Table.class) != null) { NutEntity en = dao.getEntity(klass); map.put(en.getTableName(), klass); } } return map; }
添加回复
请先登陆
回到顶部