博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Map 属性以JSON 形式存于数据库
阅读量:5863 次
发布时间:2019-06-19

本文共 7203 字,大约阅读时间需要 24 分钟。

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; @MappedSuperclasspublic class MenuDefinition {    /**     * menu's unique id.     * 

* 建议使用包格式 *

*/ 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
extra = new HashMap
(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
getExtra() { return extra; } /** * Sets the 可扩展的字段. * * @param extra * the new 可扩展的字段 */ public void setExtra(Map
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
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

你可能感兴趣的文章
查询被占用的端口
查看>>
SharePoint2013 Workflow Manager配置
查看>>
Nginx 1.2.6 稳定版发布
查看>>
Astar算法框架
查看>>
Socket心跳包理解历程
查看>>
checkbox,复选框垂直居中
查看>>
ecshop:商品分类页和文章分类页添加自定义分类title,不填为空时默认为当前分类名称...
查看>>
spring中注入数组
查看>>
关于EXCHANGE的WHITE SPACE和从MAILDATABASE导出用户邮件到PST文件
查看>>
【转载★架构】百万级访问量网站的技术准备工作
查看>>
Percona XtraDB Cluster 5.5.29-23.7.1
查看>>
Python Decorator Closure
查看>>
有效预防.NET应用程序OOM的经验备忘
查看>>
div模拟的小窗口
查看>>
java 8种基本数据类型
查看>>
AreComObjectsAvailableForCleanup and CleanupUnusedObjectsInCurrentContext
查看>>
黄聪:如何使用CodeSmith批量生成代码(原创系列教程)
查看>>
PowerShell端口连通性测试
查看>>
用ls如何实现文件按时间排序查看,谢谢! - AIX - ChinaUnix.net -
查看>>
禁止电脑安装某软件
查看>>