我是靠谱客的博主 魁梧芹菜,最近开发中收集的这篇文章主要介绍Map 属性以JSON 形式存于数据库,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

import java.util.HashMap;
import java.util.Map;

import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
import javax.persistence.Transient;

import org.codehaus.jackson.annotate.JsonIgnore;

 
@MappedSuperclass
public class MenuDefinition {

    /**
     * menu's unique id.
     * <p>
     * 建议使用包格式
     * </p>
     */
    String id;

    /**
     * 菜单显示标签,一个简短的字符串.
     */
    String label;

    /**
     * 与上一级菜单的关联. 这是一个弱关联的关系。除了参考id以外还能够使用位置表达式。
     *
     */
    String parentId;

    /**
     * 同级菜单排序,二维表格没有顺序值,所以需要记录,默认值应该是0.
     */
    Integer seq = 0;

    /**
     * 描述字段,详细描述label。.
     *
     */
    String tooltip;

    /**
     * 菜单功能键,一个标准的URI表达式。.
     */
    String URI;

    /**
     * 菜单图标地址,URL表达式。.
     */
    String icon;

    /**
     * 类别,用来对菜单子类做区分。.
     */
    String type;

    /**
     * 上下文帮助id.一个字符串.
     */
    String helpContextId;

    /**
     * Available,一个条件表达式,用来计算菜单在当前的上下文中是否能够显示。.
     */
    String available;

    /**
     * 助记符,单个字母的快捷键提示。.
     */
    String mnemonic;

    /**
     * 可扩展的字段.
     *
     */
    Map<String, Object> extra = new HashMap<String, Object>(5);

    public MenuDefinition() {

    }

    /**
     * Gets the available,一个条件表达式,用来计算菜单在当前的上下文中是否能够显示。.
     *
     * @return the available,一个条件表达式,用来计算菜单在当前的上下文中是否能够显示。
     */
    public String getAvailable() {
        return available;
    }

    /**
     * Sets the available,一个条件表达式,用来计算菜单在当前的上下文中是否能够显示。.
     *
     * @param available
     *            the new available,一个条件表达式,用来计算菜单在当前的上下文中是否能够显示。
     */
    public void setAvailable(String available) {
        this.available = available;
    }

    /**
     * Gets the menu's unique id.
     *
     * @return the menu's unique id
     */
    @Id
    public String getId() {
        return id;
    }

    /**
     * Sets the menu's unique id.
     *
     * @param id
     *            the new menu's unique id
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * Gets the 菜单显示标签,一个简短的字符串.
     *
     * @return the 菜单显示标签,一个简短的字符串
     */
    public String getLabel() {
        return label;
    }

    /**
     * Sets the 菜单显示标签,一个简短的字符串.
     *
     * @param label
     *            the new 菜单显示标签,一个简短的字符串
     */
    public void setLabel(String label) {
        this.label = label;
    }

    /**
     * Gets the 与上一级菜单的关联.
     *
     * @return the 与上一级菜单的关联
     */
    public String getParentId() {
        return parentId;
    }

    /**
     * Sets the 与上一级菜单的关联.
     *
     * @param parentId
     *            the new 与上一级菜单的关联
     */
    public void setParentId(String parentId) {
        this.parentId = parentId;
    }

    /**
     * Gets the 同级菜单排序,二维表格没有顺序值,所以需要记录。.
     *
     * @return the 同级菜单排序,二维表格没有顺序值,所以需要记录。
     */
    public int getSeq() {
        return seq;
    }

    /**
     * Sets the 同级菜单排序,二维表格没有顺序值,所以需要记录。.
     *
     * @param seq
     *            the new 同级菜单排序,二维表格没有顺序值,所以需要记录。
     */
    public void setSeq(Integer seq) {
        if (seq != null) {
            this.seq = seq;
        }
    }

    /**
     * Sets the 同级菜单排序,二维表格没有顺序值,所以需要记录。.
     *
     * @param seq
     *            the new 同级菜单排序,二维表格没有顺序值,所以需要记录。
     */
    @JsonIgnore
    public void setSeq(int seq) {
        this.seq = seq;
    }

    /**
     * Gets the 描述字段,详细描述label。.
     *
     * @return the 描述字段,详细描述label。
     */
    public String getTooltip() {
        return tooltip;
    }

    /**
     * Sets the 描述字段,详细描述label。.
     *
     * @param tooltip
     *            the new 描述字段,详细描述label。
     */
    public void setTooltip(String tooltip) {
        this.tooltip = tooltip;
    }

    /**
     * Gets the 菜单功能键,一个标准的URI表达式。.
     *
     * @return the 菜单功能键,一个标准的URI表达式。
     */
    public String getUri() {
        return URI;
    }

    /**
     * Sets the 菜单功能键,一个标准的URI表达式。.
     *
     * @param getURI
     *            the new 菜单功能键,一个标准的URI表达式。
     */
    public void setUri(String getURI) {
        this.URI = getURI;
    }

    /**
     * Gets the 菜单图标地址,URL表达式。.
     *
     * @return the 菜单图标地址,URL表达式。
     */
    public String getIcon() {
        return icon;
    }

    /**
     * Sets the 菜单图标地址,URL表达式。.
     *
     * @param icon
     *            the new 菜单图标地址,URL表达式。
     */
    public void setIcon(String icon) {
        this.icon = icon;
    }

    /**
     * Gets the 类别,用来对菜单子类做区分。.
     *
     * @return the 类别,用来对菜单子类做区分。
     */
    public String getType() {
        return type;
    }

    /**
     * Sets the 类别,用来对菜单子类做区分。.
     *
     * @param type
     *            the new 类别,用来对菜单子类做区分。
     */
    public void setType(String type) {
        this.type = type;
    }

    /**
     * Gets the 上下文帮助id.
     *
     * @return the 上下文帮助id
     */
    public String getHelpContextId() {
        return helpContextId;
    }

    /**
     * Sets the 上下文帮助id.
     *
     * @param helpContextId
     *            the new 上下文帮助id
     */
    public void setHelpContextId(String helpContextId) {
        this.helpContextId = helpContextId;
    }

    /**
     * Gets the 可扩展的字段.
     *
     * @return the 可扩展的字段
     */
    @Transient
    public Map<String, Object> getExtra() {
        return extra;
    }

    /**
     * Sets the 可扩展的字段.
     *
     * @param extra
     *            the new 可扩展的字段
     */
    public void setExtra(Map<String, Object> extra) {
        this.extra = extra;
    }

    /**
     * Gets the 助记符,单个字母的快捷键提示。.
     *
     * @return the 助记符,单个字母的快捷键提示。
     */
    public String getMnemonic() {
        return mnemonic;
    }

    /**
     * Sets the 助记符,单个字母的快捷键提示。.
     *
     * @param mnemonic
     *            the new 助记符,单个字母的快捷键提示。
     */
    public void setMnemonic(String mnemonic) {
        this.mnemonic = mnemonic;
    }
}
package com.lee.mvc.core.menu.jpa;

import java.io.IOException;
import java.util.Map;

import javax.persistence.AttributeOverride;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;

import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;

import com.lee.mvc.core.menu.MenuDefinition;

@Entity(name="menuDefinitionJpa")
@Table(name = "jmoco_ui_menu")
@AttributeOverride(name = "extra", column = @Column(name = "extra"))
public class MenuDefinitionJpa extends MenuDefinition {
	ObjectMapper objectMapper = new ObjectMapper();

	/**
	 * 返回扩展JSON字段,如果解析异常,就返回“{}”
	 * 
	 * @return
	 */
	@Column(name = "extra")
	public String getExtraJsonString() {
		if (getExtra().size() > 0) {
			try {
				return objectMapper.writeValueAsString(getExtra());
			} catch (JsonGenerationException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (JsonMappingException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		} else {
			return "{}";
		}
		return null;
	}

	/**
	 * 设置扩展的JSNO字符串。
	 * 
	 * @param json
	 */
	public void setExtraJsonString(String json) {
		if (json == null || "".equals(json)) {

		} else {
			try {
				@SuppressWarnings("unchecked")
				Map<String, Object> readValue = objectMapper.readValue(json, Map.class);
				setExtra(readValue);
			} catch (JsonParseException e) {
				e.printStackTrace();
			} catch (JsonMappingException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			} finally {
			}
		}
	}
}




转载于:https://my.oschina.net/liyonglee/blog/358206

最后

以上就是魁梧芹菜为你收集整理的Map 属性以JSON 形式存于数据库的全部内容,希望文章能够帮你解决Map 属性以JSON 形式存于数据库所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部