我在数据库(postgres 9.2.1)中有一个文本字段,其中包含一个json blob.它看起来与此类似,除了所有在一行上,显然:
{
"keyword": {
"checked": "1",
"label": "Keyword"
},
"agency_name": {
"checked": "0",
"label": "Agency Name"
}
}
Run Code Online (Sandbox Code Playgroud)
我需要向json数组添加一个元素,使它看起来像这样:
{
"keyword": {
"checked": "1",
"label": "Keyword"
},
"something_new": {
"checked": "1",
"label": "Something New"
},
"agency_name": {
"checked": "0",
"label": "Agency Name"
}
}
Run Code Online (Sandbox Code Playgroud)
我并不关心新数组元素的位置.它可以在agency_name之后.在postgres中有一个简单的方法吗?
我正在尝试为仅在短时间内相关的数据创建jboss-cache.在那之后,应该丢弃数据并释放相应的存储器.
缓存的组织方式如下:
/my_region
/session_1
/datanode_1
attribute1: value1
/datanode_2
attribute2: value2
/session_2
...
/session_3
...
...
...
Run Code Online (Sandbox Code Playgroud)
我的驱逐策略配置如下所示:
<attribute name="EvictionPolicyClass">org.jboss.cache.eviction.LRUPolicy</attribute>
<attribute name="EvictionPolicyConfig">
<config>
<attribute name="wakeUpIntervalSeconds">5</attribute>
<region name="/my_region">
<attribute name="maxNodes">100</attribute>
<attribute name="timeToLiveSeconds">1800</attribute>
</region>
</config>
</attribute>
Run Code Online (Sandbox Code Playgroud)
这样做:当/my_region有超过100个孩子时,最近最少使用的孩子被驱逐,以便该地区缩小回100个孩子.
与问题LRUPolicy是,当退出的节点有孩子,他们没有完全消除,但标有jboss:internal:uninitialized: null代替.此行为对于缓存的实体有意义,以避免从持久存储中获取它们,但它不适用于缓存未持久且永远不会再次访问的实体.
因此,为了删除节点,我创建了一个扩展,LRUPolicy用删除覆盖evict.
@Override
public void evict(Fqn fqn) throws Exception {
cache_.remove(fqn);
}
Run Code Online (Sandbox Code Playgroud)
这个新策略不会joss:internal:uninitialized: null落后,但它会在到达/my_region时删除节点maxNodes.当我放LRUPolicy回去的时候,我注意到区域节点本身实际上被驱逐并得到了unitialized标签,但最近使用的100个孩子仍然存在.
如何防止该地区被驱逐呢?有没有更好的方法去除而不是驱逐而不将驱逐与过期分开?
我正在使用jboss-cache版本1.3.0.SP4.
我正在尝试创建一个Eclipse Form,它有三个可折叠部分,一个固定大小,另外两个应该抓住编辑器窗口中所有剩余的垂直空间,这样,当其中一个底部折叠时,另一个将填充所有可用空间.
我已阅读形式的文章,尝试了许多变化grabExcessVerticalSpace和SWT.FILL的和几乎一切的GridData的部分所提供的,但没有运气.我也试图在复合材料中嵌套部分客户端grabExcess...Space,但这也无济于事.调用layout()没有帮助,折叠部分时形式回流,折叠第一部分工作正常.
这是一个包含三个部分的表单的代码,但是其中两个底部部分在折叠时只放弃了它们的一小部分空间,而不是我想要的所有部分:
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.forms.IManagedForm;
import org.eclipse.ui.forms.SectionPart;
import org.eclipse.ui.forms.editor.FormEditor;
import org.eclipse.ui.forms.editor.FormPage;
import org.eclipse.ui.forms.events.ExpansionAdapter;
import org.eclipse.ui.forms.events.ExpansionEvent;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.Section;
public class SectionFormPage extends FormPage {
private IManagedForm managedForm;
public SectionFormPage(FormEditor editor) {
super(editor, "sectionEditor", "title");
}
protected void createFormContent(IManagedForm managedForm) {
this.managedForm = managedForm;
FormToolkit toolkit = managedForm.getToolkit();
Composite body = managedForm.getForm().getBody();
body.setLayout(new GridLayout());
createSectionWithButton(toolkit, body, new GridData(SWT.FILL, SWT.FILL, true, false)); …Run Code Online (Sandbox Code Playgroud) java ×2
caching ×1
eclipse ×1
eclipse-rcp ×1
jboss ×1
jboss-cache ×1
json ×1
postgresql ×1
replace ×1
select ×1
string ×1
swt ×1