我正在开发一个Web应用程序,我希望缓存在Web请求中持续存在.我知道第一级缓存只是每个会话.我启用了二级缓存,这适用于查询.
但是,二级缓存似乎不适用于"获取"实体...因此,应用程序所做的大部分数据库工作都不会跨Web请求进行缓存.
这是正常/理想的行为吗?我正在审查一个特定的页面,它会对数据库进行大量的往返,尽管每个查询都很快,如果可以缓存实体,这些似乎是不必要的.
编辑
好的,所以我启用了二级缓存,并且正在进行查询.我似乎无法让它为实体工作.我Cache.Is(c => c.ReadWrite())在我正在测试的主要实体上(流利的nhibernate).但不,它每次都会击中数据库.有任何想法吗?
编辑
我尝试过这样的交易:
public override Accommodation Get(int id)
{
using (var tx = Session.BeginTransaction())
{
var accomm = Session.Get<Accommodation>(id);
tx.Commit();
return accomm;
}
}
Run Code Online (Sandbox Code Playgroud)
我的映射是这样的(你可以看到我们有一个讨厌的架构):
public void Override(AutoMapping<Core.Entities.Itinerary.Accommodation.Accommodation> mapping)
{
mapping.HasManyToMany(x => x.Features).Table("AccommodationLinkFeatureType").ChildKeyColumn("FeatureTypeId").NotFound.Ignore();
mapping.HasManyToMany(x => x.SimilarAccommodation).Table("AccommodationLinkSimilarAccommodation").ChildKeyColumn("SimilarAccommodationId").NotFound.Ignore();
mapping.HasMany(x => x.TourItinerary).Table("AccommodationTourItinerary");
mapping.HasOne(x => x.Images).ForeignKey("AccommodationId").Cascade.All().Not.LazyLoad();
mapping.References(x => x.CollectionType).NotFound.Ignore().Not.LazyLoad();
mapping.References(x => x.AccommodationUnitType).NotFound.Ignore().Not.LazyLoad();
Cache.Is(c => c.ReadWrite());
}
Run Code Online (Sandbox Code Playgroud)
但是,这似乎仍然没有从二级缓存中获取.
顺便说一句,我看到很多在线使用的例子,Cache.ReadWrite()但我只能Is在Cache帮助器上看到一个方法,所以我正在尝试Cache.Is(c => c.ReadWrite())- 更改流畅的界面?
假设您要编写一个处理多个文本文件的应用程序,在命令行中作为参数提供(例如,MyProcessor file1 file2 ...).这是一个非常常见的任务,经常使用Perl,但是如果想直接利用.NET并使用C#会怎样.
什么是最简单的C#4.0应用程序锅炉板代码,允许您这样做?它应该基本上包括逐行处理每个文件的每一行,并通过调用一个函数来处理它,或者可能有更好的方法来进行这种"组"行处理(例如,LINQ或其他一些方法).
在MVC 3 Beta中,模板MVC 3 Partial Page(Razor)和MVC 3 View Page with Layout(Razor)之间是否存在差异?
我在我的应用程序中添加了一个部分页面(_partialList).现在当我只返回局部视图时,它会应用_ViewStart.cshtml中的布局 - 非常像带有布局的标准视图页面.
if (Request.IsAjaxRequest())
return View("_partialList", someModelData);
Run Code Online (Sandbox Code Playgroud)
"部分"页面如何与具有布局的标准视图页面区分开来?在任何特定情况下,两者的表现会不同吗?
如果我myarray在Python中有一个数组,我可以使用切片表示法
myarray[0::2]
Run Code Online (Sandbox Code Playgroud)
仅选择偶数索引元素.例如:
>>> ar = [ "zero", "one", "two", "three", "four", "five", "six" ]
>>> ar [ 0 : : 2 ]
['zero', 'two', 'four', 'six']
Run Code Online (Sandbox Code Playgroud)
Perl中有类似的设施吗?
谢谢.
我在我的测试框架中有一个方法,它创建一个类的实例,具体取决于传入的参数:
public void test(Object... constructorArgs) throws Exception {
Constructor<T> con;
if (constructorArgs.length > 0) {
Class<?>[] parameterTypes = new Class<?>[constructorArgs.length];
for (int i = 0; i < constructorArgs.length; i++) {
parameterTypes[i] = constructorArgs[i].getClass();
}
con = clazz.getConstructor(parameterTypes);
} else {
con = clazz.getConstructor();
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,如果构造函数具有基本类型,则不起作用,如下所示:
public Range(String name, int lowerBound, int upperBound) { ... }
.test("a", 1, 3);
Run Code Online (Sandbox Code Playgroud)
结果是:
java.lang.NoSuchMethodException: Range.<init>(java.lang.String, java.lang.Integer, java.lang.Integer)
Run Code Online (Sandbox Code Playgroud)
原始int是自动装入对象版本的,但是如何让它们返回以调用构造函数?
在我的CMake项目中,我希望在运行干净目标时发生一些自定义行为.但是,如果我这样做
add_dependencies(clean extra-clean)
Run Code Online (Sandbox Code Playgroud)
它失败了
add_dependencies Adding dependency to non-existent target: clean
Run Code Online (Sandbox Code Playgroud)
甚至可以进行自定义清洁行为吗?
编辑:我正在运行一些外部工具作为构建的一部分.这些工具会生成大量文件,但只需要求工具执行此操作即可清除它们.理想情况下,我可以向clean目标添加一个自定义目标,以调用该工具进行清理.
我想提示用户生成一些随机数并保存到文件中.他给了我们这一部分.我们要做的部分是打开该文件,将数字转换为列表,然后找到平均值,标准偏差等,而不使用简单的内置Python工具.
我已经尝试使用open,但它给了我无效的语法(我选择的文件名是"数字",它保存到"My Documents"自动,所以我尝试open(numbers, 'r')和open(C:\name\MyDocuments\numbers, 'r')并没有一个工作).
我正在尝试开发一个脚本,将运行时生成的字符串与用户输入的字符串进行比较.不幸的是,由于用户使用文本框输入他的代码,我在用户输入的字符串中得到^ M. 例如,如果我将这些字符串打印到文件我得到这个:
User Input:
1^M
2^M
3
Output of script:
1
2
3
Run Code Online (Sandbox Code Playgroud)
显然,当我尝试比较这两个字符串时,我得到了一个错误.什么是最有效的方法来解决这个问题?如果您没有注意到,用户"donot"输入的所有行都以"^ M"结尾.此用户字符串中的最后一行没有^ M,而代码输出末尾有"\n".
我必须对一组字典进行排序,但我必须按字典中的对象排序.
我有以下定义.
@Autowired
DaoType1<object1> someDao;
@Autowired
DaoType1<object1> someListDao;
Run Code Online (Sandbox Code Playgroud)
在我的bean定义中,我有两个相同类型的bean
<bean id="someDao" class="com.example.DaoType1" />
<bean id="someListDao" class="com.example.DaoType1" />
Run Code Online (Sandbox Code Playgroud)
第二个bean是从另一个xml文件导入的,如果这有所不同的话.它们也有不同的属性.为什么spring没有抛出错误,因为已经定义了2个相同类型的bean.它是否使用变量名称,因为它们匹配bean ID.如果我将@Qualifiers用于两个不同的bean,则dao是不同的,并且功能按预期工作.
这是一个更简洁的版本.因为我没有相关性,所以我遗漏了其他豆子.
applicationContext.xml中
<import resource="classpath:dm-services-crud.xml"/>
<bean id="ruleListCrudService" class="com.idna.dm.service.crud.impl.RuleCrudServiceImpl">
<property name="crudDao" ref="ruleListCrudDao" />
</bean>
Run Code Online (Sandbox Code Playgroud)
DM-服务,crud.xml
<bean id="ruleCrudService" class="com.idna.dm.service.crud.impl.RuleCrudServiceImpl">
<property name="crudDao" ref="ruleCrudDao" />
<property name="ruleNetworkOfNodesCrudService" ref="ruleNetworkOfNodesCrudService" />
<property name="elementMappingsCrudService" ref="elementMappingsCrudService" />
<property name="ruleCrudDao" ref="newRuleCrudDao"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
default-autowire根本不存在于我的任何xml文件中.
java ×2
python ×2
asp.net-mvc ×1
c# ×1
c#-4.0 ×1
cmake ×1
command ×1
file ×1
iphone ×1
nhibernate ×1
nsarray ×1
objective-c ×1
perl ×1
razor ×1
reflection ×1
sorting ×1
spring ×1
string ×1
syntax ×1