我正在小型设备上使用触摸屏,滚动条的自定义宽度并不好,因为我的要求之一就是手指手势都需要一切.
如何设置WPF ScrollViewer滚动条的宽度?
请注意,我不想更改设备上所有滚动条的宽度(可以通过Windows设置) - 只有我的应用程序中的滚动条.
我刚刚发现,如果我从NHibernate会话中获取一个对象并更改对象的属性,NHibernate会在没有调用的情况下自动更新提交对象Session.Update(myObj)!
我可以看到这可能会有所帮助,但作为默认行为,它似乎很疯狂!
更新:我现在理解持久性无知,所以这种行为现在显然是首选.我会在这里留下这个令人尴尬的问题,希望能帮助其他亵渎用户.
我怎么能阻止这种情况发生?这是默认的NHibernate行为还是来自Fluent NHibernate的AutoPersistenceModel?
如果没有办法阻止这个,我该怎么办?除非我忽略了这一点,否则这种行为似乎会造成一个混乱.
我从2009年8月18日开始使用NHibernate 2.0.1.4和Fluent NHibernate构建
难道这家伙的权利与他的回答?
我还读过,重写事件监听器可能是解决这个问题的方法.但是,IDirtyCheckEventListener.OnDirtyCheck在这种情况下不会被调用.有谁知道我需要覆盖哪个监听器?
我正在Java应用程序中处理一些英文文本,我需要阻止它们.例如,从文字"amenities/amenity"我需要得到"amenit".
该功能如下:
String stemTerm(String term){
...
}
Run Code Online (Sandbox Code Playgroud)
我找到了Lucene分析仪,但它看起来太复杂了我需要的东西. http://lucene.apache.org/java/2_2_0/api/org/apache/lucene/analysis/PorterStemFilter.html
有没有办法用它来阻止单词而无需构建分析器?我不了解所有分析仪业务......
编辑:我实际上需要一个词干+词形还原.Lucene可以这样做吗?
然后我使用Fluent NHibernate及其自动化功能来映射以下简化的POCO类:
public class Foo
{
public virtual int Id { get; set; }
public virtual datetime CreatedDateTime { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
默认情况下,CreatedDateTime字段将映射到SQL DateTime.但是,如果我进行测试以检查实体是否正确创建,则会失败.这是因为DateTime字段的精度不会保留到SQL数据库.我强调这背后的原因是MS SQL Server DateTime只能通过四舍五入到.000,.003或.007的增量来保持毫秒精度(请参阅http://msdn.microsoft.com/en-us/library /ms187819.aspx).因此,NHibernate在保存到商店时会截断毫秒数.这导致我的测试失败,当检查正确持久的字段,因为我的.NET DateTime保持其毫秒,但在保存已经失去其毫秒之后重新启动DateTime,因此两者不是真正相等.
为了解决这个问题,我将以下映射添加到Foo对象:
public class FooMap : IAutoMappingOverride<Foo>
{
public void Override(AutoMapping<Foo> mapping)
{
mapping.Map(f => f.CreatedDateTime).CustomType("datetime2");
}
}
Run Code Online (Sandbox Code Playgroud)
我知道这个映射使得NHibernate将CreatedDateTime持久化为datetime2的SQL类型,它可以存储.NET DateTime可以的完整精度.这是一种享受,现在测试通过了.
然而,一次传递另一个失败:我检查架构导出的测试现在失败,出现以下错误:
System.ArgumentException : Dialect does not support DbType.DateTime2
Parameter name: typecode
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪:
at NHibernate.Dialect.TypeNames.Get(DbType typecode)
at NHibernate.Dialect.Dialect.GetTypeName(SqlType sqlType)
at NHibernate.Mapping.Column.GetDialectTypeName(Dialect dialect, IMapping mapping)
at NHibernate.Mapping.Table.SqlCreateString(Dialect dialect, IMapping p, String …Run Code Online (Sandbox Code Playgroud) 假设我有一个以这种方式配置的触发器:
<bean id="updateInsBBTrigger"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="updateInsBBJobDetail"/>
<!-- run every morning at 5 AM -->
<property name="cronExpression" value="0 0 5 * * ?"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
触发器必须与另一个应用程序连接,如果有任何问题(如连接失败),它应该每10分钟重试一次任务五次或直到成功.有什么方法可以配置触发器这样工作?
我有一个相当简单的SOLR结构,它包含三个不同的领域:
id,文本和标签
在schema.xml我设置以下内容
<uniqueKey>id</uniqueKey>
<defaultSearchField>text</defaultSearchField>
<solrQueryParser defaultOperator="AND"/>
<copyField source="tags" dest="text"/>
Run Code Online (Sandbox Code Playgroud)
但是,当我搜索仅显示为标记的单词时,则找不到该文档.
我在这里的问题是:copyField描述的任何分析仪运行(索引和查询),作为前发生在这里查询分析器之前或刚?
编辑
分析仪def:
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory" />
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1" preserveOriginal="1" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.SnowballPorterFilterFactory" language="German" />
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1" preserveOriginal="1" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.SnowballPorterFilterFactory" language="German" /> …Run Code Online (Sandbox Code Playgroud) 我使用Lucene.Net来索引和搜索文档,我使用以下代码创建或打开索引(如果存在):
IndexWriter writer = new IndexWriter(@"C:\index", new StandardAnalyzer(), !IndexExists);
...
private bool IndexExists
{
get
{
return ??
}
}
Run Code Online (Sandbox Code Playgroud)
现在,如何IndexExists以简单的方式实施?我不需要抛出任何异常.
indexing search lucene.net full-text-search full-text-indexing
在我想要持久化对象然后通过从db(而不是会话)中获取它来证明它是持久化的测试中,我注意到以下内容之间没有区别:
// save it
session.Clear()
// fetch it
Run Code Online (Sandbox Code Playgroud)
要么
// save it
session.Flush()
session.Evict(_instance)
// fetch it
Run Code Online (Sandbox Code Playgroud)
我这个懒惰的程序员倾向于超过两行.有没有什么理由让我更喜欢这两行呢?
我使用Xcode 4.5PR和iOS 6beta 2.
我没有更改任何代码,我的应用程序抛出标题中提到的异常.
我用Debug Window这个函数引起了这个异常,但它显示了
0x38dda960: push {r4, r5, r6, r7, lr}
Run Code Online (Sandbox Code Playgroud)
我怎样才能找到问题?我该如何解决?
我有这个REGEX 几乎完美......它似乎处理除了带负号然后是小数的数字之外的所有内容.所以,如果我输入:
-.2
Run Code Online (Sandbox Code Playgroud)
我收到一个错误 -
这是我的正则表达式 - 我测试过的其他所有内容都完美无缺...
^(\+|-)?[0-9]{1,11}?(?:\.[0-9]{1,4})?$
Run Code Online (Sandbox Code Playgroud)
这允许:
这一切都有效:
-0.2345
-10
12
.125
0.1245
5.555
25000000000 (aka 25 Billion)
25000000000.25
Run Code Online (Sandbox Code Playgroud)
这些不起作用:
-.2
-.421
Run Code Online (Sandbox Code Playgroud)