我有一个名为SynonymMapping的类,它有一组映射为CollectionOfElements的值
@Entity(name = "synonymmapping")
public class SynonymMapping {
@Id private String keyId;
//@CollectionOfElements(fetch = FetchType.EAGER)
@CollectionOfElements
@JoinTable(name="synonymmappingvalues", joinColumns={@JoinColumn(name="keyId")})
@Column(name="value", nullable=false)
@Sort(type=SortType.NATURAL)
private SortedSet<String> values;
public SynonymMapping() {
values = new TreeSet<String>();
}
public SynonymMapping(String key, SortedSet<String> values) {
this();
this.keyId = key;
this.values = values;
}
public String getKeyId() {
return keyId;
}
public Set<String> getValues() {
return values;
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个测试,我将两个SynonymMapping对象存储到数据库,然后要求数据库返回所有保存的SynonymMapping对象,期望接收我存储的两个对象.
当我将值的映射更改为急切(如注释行中的代码所示)并再次运行测试时,我会收到四个匹配项.
我已经清除了运行之间的数据库,我可以复制这个问题在eager和lazy之间交换.
我认为它与hibernate在下面创建的连接有关但我无法在网上找到明确的答案.
任何人都可以告诉我为什么急切的提取是复制对象?
谢谢.
我终于将我的应用程序放在IntelliJ中并部署到JBoss.我希望热部署工作,但看起来我需要了解IntelliJ和JBoss如何交互.
当我在IntelliJ中构建我的项目然后启动JBoss时,ear文件没有出现在deploy目录中,所以我认为IntelliJ有一些神奇的功能,以便JBoss从不同的文件夹中读取.这一步中发生了什么?
谢谢 :)
当您在IntelliJ内部运行服务器时,您可以在屏幕底部的窗口中看到控制台输出.
有没有办法格式化输出,以便IntelliJ识别类名并使它们可点击?然后,当我在服务器输出中看到一个类名时,我可以点击它并直接进入那里.
谢谢 :)
我在Windows 7上运行IntelliJ,我正在尝试解决一个无法启动Selenium的问题.我认为这可能与特权有关.
我正在以"以管理员身份运行"启动IntelliJ.IntelliJ启动的进程是否也具有管理员权限?
我正在从REST API中读取一些数据,需要根据应用程序收到的信息生成一些按钮.
因为我在许多Activity屏幕中需要相同的按钮,所以我扩展了Button来制作一个RachelButton并在构造函数中进行设置.
public RachelButton(Context context, Info info) {
super(context);
this.info= info;
setText(info.getTime());
setTypeface(Typeface.DEFAULT, Typeface.BOLD);
int identifier = 0;
if(info.isAvailable()){
identifier = getContext().getResources().getIdentifier("drawable/info_button_"+info.getType(), null, getContext().getPackageName());
}else{
identifier = R.drawable.info_button_unavailable;
}
if(identifier == 0){
Log.e("INFO_BUTTON", "no button for "+info.getType());
}
setBackgroundResource(identifier);
setTextColor(R.color.info_button_text_color);
setOnClickListener(new View.OnClickListener(){
public void onClick(View view) {
//do stuff
}
});
}
Run Code Online (Sandbox Code Playgroud)
然后我用来生成彩色按钮的资源示例如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
<shape>
<gradient
android:startColor="@color/button_pressed"
android:endColor="@color/button_pressed"
android:angle="270" />
<stroke
android:width="3dp"
android:color="@color/button_pressed" />
<corners
android:radius="3dp" />
<padding
android:left="5dp"
android:top="5dp"
android:right="5dp"
android:bottom="5dp" …Run Code Online (Sandbox Code Playgroud) 我正在使用SimpleMappingExceptionResolver来查看它是如何工作的,看看它对我们客户端是否有用但是我在理解它时遇到了问题.
我尝试过访问我的应用程序中的特定页面,并在handleRequestInternal方法中抛出异常.
当我抛出RecoverableDataAccessException(DataAccessException的子类)时,将按预期显示正确的错误页面.
当我抛出freemarker.core.InvalidReferenceException或java.lang.NumberFormatException时,异常会冒泡到页面,并显示默认的500错误页面(即没有样式).
下面是我正在使用的映射.
<bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<prop key="org.springframework.dao.DataAccessException">/general/error/500</prop>
<prop key="freemarker.core.InvalidReferenceException">/general/error/500</prop>
<prop key="NumberFormatException">/general/error/500</prop>
</props>
</property>
<property name="defaultErrorView" value="/general/error/500" />
</bean>
Run Code Online (Sandbox Code Playgroud)
我至少期望默认的错误视图来获取异常并显示我的特定错误页面但是没有发生.
我在这里正确使用SimpleMappingExceptionHandler吗?
[编辑]我正在使用码头.
[编辑]我已经意识到SMER不处理渲染过程中抛出的错误,这解释了为什么它无法捕捉到我特别遇到的问题.SMER能否应对500种风格错误?
我正在实施Solr的自由文本搜索项目,其中每天需要大量添加和删除可用于搜索的记录.
由于规模我需要确保索引的大小是合适的.
在我的Solr测试安装中,我索引了一组10个文档.然后我在其中一个文档中进行了更改,并希望在索引中替换具有相同ID的文档.这可以正常工作,并在搜索时按预期运行.
我正在使用此代码更新文档:
getSolrServer().deleteById(document.getIndexId());
getSolrServer().add(document.getSolrInputDocument());
getSolrServer().commit();
Run Code Online (Sandbox Code Playgroud)
我注意到的是,当我查看Solr服务器的统计页面时,数字并不是我所期望的.
在初始索引之后,numDocs和maxDocs都如预期的那样等于10.但是,当我更新文档时,numDocs仍然等于10(预期)但maxDocs等于11(意外).
阅读文档时,我看到了
maxDoc可能更大,因为maxDoc计数包括尚未从索引中删除的逻辑删除文档.
所以问题是,如何从索引中删除逻辑删除的文档?
如果这些文档仍然存在于索引中,那么当运行大量文档时,我是否会面临性能损失的风险?
谢谢 :)
android ×1
annotations ×1
hibernate ×1
java ×1
lucene ×1
solr ×1
solrj ×1
spring ×1
spring-mvc ×1
windows-7 ×1