如何限制从数据库中检索的结果数量?
select e from Entity e /* I need only 10 results for instance */Run Code Online (Sandbox Code Playgroud) 我如何使用源5?我试过了
mvn -source 5 test
Run Code Online (Sandbox Code Playgroud)
但它不起作用:-)
当我用javac编译文件时,一切正常.
让我们为这个问题创建一个值:
val a = 1 :: Nil
Run Code Online (Sandbox Code Playgroud)
现在,我可以证明匿名函数可以用这样的简写形式编写:
a.map(_*2)
Run Code Online (Sandbox Code Playgroud)
是否有可能写出这个功能的简写?:
a.map((x) => x)
Run Code Online (Sandbox Code Playgroud)
我的解决方案不起作用:
a.map(_)
Run Code Online (Sandbox Code Playgroud) 我可以用一个验证器验证两个相互依赖的字段吗?
<h:form>
<h:inputText value="#{logRegBean.person.name}" >
<f:validator validatorId="loginCorrectValidator" />
</h:inputText>
<h:inputSecret value="#{logRegBean.person.password}" />
<h:commandButton action="#{logRegBean.login}" />
</h:form>
Run Code Online (Sandbox Code Playgroud)
我想在数据库中搜索用户,如果有用户,我将测试密码(在db和输入中)是否匹配.但是如何在一个验证器中访问密码字段呢?我试图通过评估其他字段中的int值createValueExpression(),但看起来我无法在那段时间访问该值,因为我总是得到空字符串.
我想知道什么是物业测试目标,它的甜点是什么,应该在哪里使用.让'有一个我想测试的示例函数:
f :: [Integer] -> [Integer]
Run Code Online (Sandbox Code Playgroud)
这个函数f采用一个数字列表,并将奇数数字平方并滤除偶数.我可以陈述一些关于函数的属性,比如
没有属性测试,该函数适用于最简单的情况,例如我可以做一个简单的情况,如果我实现f错误将传递这些属性:
f = fmap (+2) . filter odd
Run Code Online (Sandbox Code Playgroud)
所以,如果我想介绍一些简单的情况,看起来我需要在属性规范中重复算法的基本部分,或者我需要使用基于值的测试.重复算法的第一个选项可能是有用的,如果我打算改进算法,如果我计划改变它的实现,例如速度.通过这种方式,我有一个参考实现,我可以用来再次测试.
如果我想检查一下,算法不会因某些微不足道的情况而失败,我不想在规范中重复算法,看起来我需要一些单元测试.我会写例如这些检查:
f ([2,5]) == [25]
f (-8,-3,11,1) == [9,121,1]
Run Code Online (Sandbox Code Playgroud)
现在我对算法有了更多的信心.
我的问题是,基于属性的测试是否意味着要取代单元测试,还是它是互补的?是否有一些一般性的想法,如何编写属性,所以它们是有用的还是完全取决于对函数逻辑的理解?我的意思是,可以说,以某种方式写出属性特别有益吗?
此外,是否应该努力使属性测试算法的每个部分?我可以把算法放在一边,然后在其他地方进行测试,让属性只测试过滤部分,它看起来很好,它可以很好地覆盖它.
f :: (Integer -> Integer) -> [Integer] -> [Integer]
f g = fmap g . filter odd
Run Code Online (Sandbox Code Playgroud)
然后我可以通过单独Prelude.id测试来测试g其他地方.
我想问为什么java注释使用了这么多...我知道他们替换了例如jpa中的xml配置,但为什么这种配置会被使用呢?考虑一下这段代码:
@Entity
class Ent{
// some fields
}
//... somewhere in the other file far far away
class NonEnt{
// whatever here
}
Run Code Online (Sandbox Code Playgroud)现在,当我尝试将其置于持久化上下文中时,使用EntityManager's persist方法,我会在尝试持久化NonEnt实例时遇到运行时错误(更好的是获得编译错误).对我来说有明显的解决方案,强制实体实现一些无方法接口,而不是使用@Annotations.但这在框架设计师中并不流行,这个解决方案的缺点是什么?我scalaz |>想在切换功能和对象时使用操作符,这样可以获得更多的可读性.我来介绍一个模型函数:
def length2(x:String) = x.length * 2Run Code Online (Sandbox Code Playgroud) 现在,我可以用两种方式编写它:"aoeu" |> length2
length2("aoeu")Run Code Online (Sandbox Code Playgroud)
但是,如果我将此函数定义为更通用,它将停止工作.def length2(x:SeqLike[_,_]) = x.length * 2
length2("aoeu") // ok
"aoeu" |> length2 // doesn't workRun Code Online (Sandbox Code Playgroud)
为什么编译器不理解这个?肯定有一种隐含的转换,从String某种类混合到特质中SeqLike. 当我按Ctrl+ Alt+时L,IDEA删除未使用的导入.我想关闭此功能,将未使用的导入保留在那里.我在哪里可以影响这个设置?
我正在为一个解析String的构造函数编写一个jUnit测试,然后检查很多东西.当存在错误数据时,对于每个事物,都会抛出一些带有不同消息的IllegalArgumentException.所以我想为它编写测试,但是我如何识别抛出的错误?这是我该怎么做的:
@Test(expected=IllegalArgumentException.class)
public void testRodneCisloRok(){
new RodneCislo("891415",dopocitej("891415"));
}
Run Code Online (Sandbox Code Playgroud)
这就是我想要的方式,但我不知道是否有可能以某种方式编写它:
@Test(expected=IllegalArgumentException.class("error1"))
public void testRodneCisloRok(){
new RodneCislo("891415",dopocitej("891415"));
}
Run Code Online (Sandbox Code Playgroud) 我正在验证传入属性,但验证程序甚至可以捕获未注释的其他页面 @Valid
@RequestMapping(value = "/showMatches.spr", method = RequestMethod.GET)
public ModelAndView showMatchPage(@ModelAttribute IdCommand idCommand)
//etc
Run Code Online (Sandbox Code Playgroud)
当我访问页面时,/showMatches.spr我收到错误org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalStateException: Invalid target for Validator [cz.domain.controller.Controllers$1@4c25d793]: cz.domain.controller.IdCommand@486c1af3,
验证器不接受它,但我不想让它验证!通过此验证器:
protected void initBinder(WebDataBinder binder) {
binder.setValidator(new Validator() {
// etc.
}Run Code Online (Sandbox Code Playgroud) java ×4
scala ×2
unit-testing ×2
validation ×2
annotations ×1
haskell ×1
jpa ×1
jpql ×1
jsf ×1
junit ×1
maven-2 ×1
quickcheck ×1
scalaz ×1
spring ×1
spring-mvc ×1