All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.easycodebox.jdbc.JoinColumnObj Maven / Gradle / Ivy

package com.easycodebox.jdbc;

import java.io.Serializable;

import javax.persistence.JoinColumn;

import com.easycodebox.common.lang.StringUtils;
import com.easycodebox.jdbc.config.Configuration;

/**
 * @author WangXiaoJin
 *
 */
public class JoinColumnObj implements Serializable {
	
	private static final long serialVersionUID = -7947013768721709621L;
	
	private JoinColumnObj() {
		
	}
	
	private JoinColumnObj(JoinColumn joinColumn) {
		this.name = StringUtils.stripToNull(joinColumn.name());
		this.referencedColumnName = StringUtils.stripToNull(joinColumn.referencedColumnName());
		this.unique = joinColumn.unique();
		this.nullable = joinColumn.nullable();
		this.insertable = joinColumn.insertable();
		this.updatable = joinColumn.updatable();
		this.table = StringUtils.stripToNull(joinColumn.table());
	}
	
	public static JoinColumnObj instance() {
		return new JoinColumnObj();
	}
	
	public static JoinColumnObj transfer(JoinColumn joinColumn) {
		return new JoinColumnObj(joinColumn);
	}
	
	public static JoinColumnObj[] transfer(JoinColumn[] joinColumns) {
		JoinColumnObj[] objs = new JoinColumnObj[joinColumns.length];
		for(int i = 0; i < joinColumns.length; i++) {
			objs[i] = transfer(joinColumns[i]);
		}
		return objs;
	}
	
	/** 
     * 表的列名,既有外键的表的列名。默认为主表表名_id
     */
    private String name;
    /**
     * 外键引用的表的列名,默认为外键引用表的主键列名
     */
    private String referencedColumnName;

    private boolean unique = false;

    private boolean nullable = true;

    private boolean insertable = true;

    private boolean updatable = true;

    /**
     * (Optional) The name of the table that contains
     * the column. 如果此属性没有值,则自动使用有外键的表名
     */
    private String table;
    
    private Class entity;
    
    
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getReferencedColumnName() {
		return referencedColumnName;
	}

	public void setReferencedColumnName(String referencedColumnName) {
		this.referencedColumnName = referencedColumnName;
	}

	public boolean isUnique() {
		return unique;
	}

	public void setUnique(boolean unique) {
		this.unique = unique;
	}

	public boolean isNullable() {
		return nullable;
	}

	public void setNullable(boolean nullable) {
		this.nullable = nullable;
	}

	public boolean isInsertable() {
		return insertable;
	}

	public void setInsertable(boolean insertable) {
		this.insertable = insertable;
	}

	public boolean isUpdatable() {
		return updatable;
	}

	public void setUpdatable(boolean updatable) {
		this.updatable = updatable;
	}

	public String getTable() {
		return table;
	}

	public void setTable(String table) {
		this.table = table;
	}

	public Class getEntity() {
		if(entity == null && StringUtils.isNotBlank(table)) {
			return entity = Configuration.getEntityByTableName(table);
		}
		return entity;
	}

	public void setEntity(Class entity) {
		this.entity = entity;
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy