我有一个类似于这样的结构:
class Cat {
int id;
List<Kitten> kittens;
}
class Kitten {
int id;
}
Run Code Online (Sandbox Code Playgroud)
我想阻止用户使用相同ID创建一只有多只小猫的猫.我已经尝试创建索引如下:
db.Cats.ensureIndex({'id': 1, 'kittens.id': 1}, {unique:true})
Run Code Online (Sandbox Code Playgroud)
但是当我尝试插入格式错误的猫时,Mongo会接受它.
我错过了什么吗?这甚至可以做到吗?
我正在开发一个基于Dozer的自动映射框架.我不会详细说明,因为它与问题无关,但一般来说它应该允许从A类到B类的简单转换.我想从类的伴随对象中注册投影.
下面是我希望如何工作的(简化)示例,以及确保投影正确注册的Specs测试.
不幸的是,这不起作用.从我可以收集到的,这是因为没有任何东西初始化A伴侣对象.事实上,如果我在A对象上调用任何方法(如注释掉的hashCode调用,则正在正确注册投影.
我的问题是 - 一旦JVM启动,我怎样才能自动初始化A对象?如果有必要,我不介意扩展特性或其他东西.
谢谢.
class A {
var data: String = _
}
class B {
var data: String = _
}
object A {
projekt[A].to[B]
}
"dozer projektor" should {
"transform a simple bean" in {
// A.hashCode
val a = new A
a.data = "text"
val b = a.-->[B]
b.data must_== a.data
}
}
Run Code Online (Sandbox Code Playgroud) 我有一对配对列表:
val pairs = List("a" -> 1, "b" -> 2, "c" -> 3)
Run Code Online (Sandbox Code Playgroud)
我想把它转换成一对列表:
List("a", "b", "c") -> List(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)
基本上,我想要zip()的反面
这样做有什么优雅的方式吗?
我一直在尝试采用Cake Pattern,但我很难适应这种编程风格,特别是在涉及单元测试的情况下.
让我们假设我有以下业务对象:
trait Vet {
def vaccinate(pet: Pet)
}
trait PetStore { this: Vet =>
def sell(pet: Pet) {
vaccinate(pet)
// do some other stuff
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我想在模拟Vet的功能时测试PetStore.如果我正在使用合成,我正在创建一个模拟[Vet]并将其传递给PetStore构造函数,然后像在Java世界中那样编写模拟.但是,我找不到人们如何用蛋糕模式做这个的任何参考.
一种可能的解决方案是根据预期的用法在每个测试用例上实施vaccinate(),但这不允许我验证模拟被正确调用,不允许我使用匹配器等.
那么 - 人们如何使用Cake Pattern与模拟对象?
我有一个表示DB记录的字符串ID列表.我想异步地从数据库加载它们,然后异步上传每个记录到远程服务器,然后当完成所有记录上传后,记录上传的记录的ID.
由于我使用的是Scala 2.9.2,我使用的是Twitter的core-util Future实现,但它应该与Monadic转换的2.10期货完全一样.
一般概念是这样的:
def fetch(id: String): Future[Option[Record]]
def upload(record: Record): Future[String]
def notifyUploaded(ids: Seq[String]): Unit
val ids: Seq[String] = ....
Run Code Online (Sandbox Code Playgroud)
我试图通过for comprehension来做到这一点,但fetch返回Future of Option这一事实使得它变得模糊不清并且代码无法编译:
for {
id <- ids
maybeRecord <- fetch(id)
record <- maybeRecord
uploadedId <- upload(record)
} yield uploadedId
Run Code Online (Sandbox Code Playgroud)
编译此结果会导致以下错误:
scala: type mismatch;
found : com.twitter.util.Future[String]
required: Option[?]
uploadedId <- upload(record)
^
Run Code Online (Sandbox Code Playgroud)
我错过了什么?为什么编译器期望uploadedId是一个选项?有什么好办法可以解决这个问题吗?
我正在使用jQuery UI Sortables对列表之间的项目进行排序,并将项目从一个列表拖放到另一个列表.
这些列表可以与控制展开/折叠操作的标题DIV折叠.我想用鼠标悬停在标题DIV上时自动展开列表,但只有当我正在排序列表时才会这样.
问题是当前排序时(当我正在拖动列表项时),鼠标悬停/鼠标移除事件似乎不会触发页面上的任何对象.
任何人都知道为什么会发生这种情况/如何解决这个问题?
总体布局:
<div class="category">
<div class="title">title</div>
<ul class="sortable">
<li>item 1</li>
<li>item 2</li>
....
</ul>
</div>
<div class="category">
...
</div>
Run Code Online (Sandbox Code Playgroud)
谢谢!
我正在为新产品设计安全子系统.该系统需要以下内容:
在继续实施Spring Security(2.x)缺乏的大多数功能之前,我想知道是否有人熟悉并且可以推荐可能已经实现/支持这些要求的软件包?理想情况下,JAR + WAR可以放入项目中并支持现成的所有内容.
谢谢
我正在开发我的大学毕业设计项目,我想要包含一个基于OLAP的报告模块.
在过去,我使用Mondrian和JPivot作为Java项目的OLAP解决方案,我正在寻找类似于.NET的东西.棘手的部分是我的项目应该运行在Mono和MySQL(安装环境是Linux机器)上,因此MSSQL OLAP是不可能的.
任何人都知道我可以使用的类似Mondrian/JPivot的东西吗?我不介意自己创建大多数聚合表,只要我的aspx页面有某种交叉表/数据透视控件
我们拥有一个高度依赖Spring Framework的大型基础架构.最近我开始在Scala中编写代码并使用Specs进行测试.这一切都很棒,但在某些时候我需要使用依赖于Spring的功能(例如基于HibernateDaoSupport的DAO).
有没有人设法使用SpringJUnit4ClassRunner类来运行Specs测试?有没有人对如何实现这一目标有不同的方向?
谢谢
我正在编写一个SWT应用程序,它需要放在系统托盘中,并在用户连接某个USB设备时自动弹出(该应用程序用作其控制面板).
在本机环境中执行此操作的方法(在这种情况下为win32,但我最终应该是平台无关的)是监听WM_DEVICECHANGE事件,然后检查我的设备是否已断开连接.
谷歌搜索主题,似乎SWT实际上并没有处理这种类型的事件.有没有人知道如何实现这一目标?我的后备解决方案是每隔n秒对USB端口进行采样,寻找设备,但就我而言,这是一个禁止解决的问题......
谢谢和欢呼
夏嘉曦
我有两个班,Guid和UserGuid.Guid有一个类型参数.UserGuid是Guid的一个特例,代表一个没有类的实体(User),所以我把它实现为Guid [Any].
我有几种Guid的应用方法,我想在两种类型之间共享,所以我将它们放在一个超类(GuidFactory)中.但是,由于Guid是参数化的,我必须参数化GuidFactory特征,否则生成的Guid将被参数化为Guid [_].
因此,我的伴随对象UserGuid无法编译,抱怨:
错误:com.wixpress.framework.scala.UserGuid不带任何类型参数,预期:一个对象UserGuid扩展GuidFactory [UserGuid]
有什么方法可以在Guid和UserGuid之间共享应用方法,还是我必须复制它们或使用转换?
代码如下.
abstract class TypeSafeId[I, T](val id: I) extends Serializable
class Guid[T](override val id: String) extends TypeSafeId[String, T](id)
class UserGuid(override val id: String) extends Guid[Any](id)
trait GuidFactory[I[A] <: Guid[A]] {
def apply[T](id: String): I[T]
def apply[T](id: UUID): I[T] = apply(id.toString)
def apply[T](ms: Long, ls: Long): I[T] = apply(new UUID(ms, ls))
def apply[T](bytes: Array[Byte]):I[T] = apply(UUID.nameUUIDFromBytes(bytes))
def random[T] = apply[T](UUID.randomUUID())
}
object Guid extends GuidFactory[Guid] {
override def apply[T](id: String) = new Guid[T](id)
} …Run Code Online (Sandbox Code Playgroud) 我正在使用Spring MVC 3.0开发一个Web应用程序,并寻找现成的解决方案(如果有的话),或者为可以实现以下目标的url/action映射和路由系统提供"最佳实践"参考:
基本上我需要的是能够在一个集中的位置定义URL,以便更改URL(在开发期间;我知道不改变 - 活动网址的想法:))并不意味着查找和更改这个URL在万亿页中.
对这样一个现有解决方案/教程/指南的任何指示都会很棒.
Thanjs