manytomanyfield.java

来自「 EasyDBO是一个超轻量级对象-关系映射(Object/Relation M」· Java 代码 · 共 46 行

JAVA
46
字号
package com.easyjf.dbo;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;
public class ManyToManyField extends ManyToOneField {
	
	private String tagColumn;//关联目示列名,第三方表中的字段名
	private String tagKey;//关联目标主键
	protected Object getValue(DBObject parent, EasyJDB db) {
		Class type=this.getType();
		String key=this.getKey();
		String column=this.getColumn();
		String tableName=this.getTableName();
		Object obj=null;
		Class fieldType=this.fieldType;			
		java.util.Collection paras=new java.util.ArrayList();		
		paras.add(parent.get(key));
		List list=db.query(type, this.tagKey+" in (select "+this.tagColumn +" from "+this.getTableName()+" where  "+this.getColumn()+"=?)", paras);		
		if(Set.class.isAssignableFrom(this.fieldType))
		{
		obj=com.easyjf.beans.BeanUtils.instantiateClass(this.fieldType);
		((Set)obj).add(list);
		}
		else
		{
			obj=list;
		}
		return obj;
	}
	
	public String getTagColumn() {
		return tagColumn;
	}
	public void setTagColumn(String keyColumn) {
		this.tagColumn = keyColumn;
	}
	public String getTagKey() {
		return tagKey;
	}
	public void setTagKey(String tagKey) {
		this.tagKey = tagKey;
	}
	
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?