我是Slick的新手,并努力为以下内容找到一个好的规范示例.
我想在两个表中插入一行.第一个表有一个自动递增的主键.第二个表通过其主键与第一个表相关.
所以我想:
请欣赏以上逻辑的规范示例,以及下面我的定义的任何相关建议(我对Slick来说很新!).谢谢!
private def insertAndReturn(entry: Entry) =
entries returning entries.map(_.id)
into ((_, newId) => entry.copy(id = newId))
def insert(entry: Entry): Future[Entry] =
db.run(insertAndReturn(entry) += entry)
Run Code Online (Sandbox Code Playgroud)
(类似于表2)
class EntryTable(tag: Tag) extends Table[Entry](tag, "tblEntry") {
def id = column[EntryId]("entryID", O.PrimaryKey, O.AutoInc)
...
def * = (id, ...).shaped <> (Entry.tupled, Entry.unapply)
}
Run Code Online (Sandbox Code Playgroud)
class UsernameChangeTable(tag: Tag) extends Table[UserNameChange](tag, "tblUserNameChange") {
def entryId = column[EntryId]("entryID")
...
def entry = foreignKey("ENTRY_FK", entryId, entryDao.entries)(
_.id, onUpdate = Restrict, …Run Code Online (Sandbox Code Playgroud) 在应用程序启动时,我想确保存在索引和约束。
当我在应用程序启动时调用以下内容时,由于约束已经存在,我收到一个错误:
CREATE CONSTRAINT ON (node:MyLabel) ASSERT node.myProperty IS UNIQUE
Run Code Online (Sandbox Code Playgroud)
我想确保约束存在而不会抛出错误。
有没有办法在 Cypher 中做到这一点?我正在努力在 Neo4J 文档中找到任何帮助。
我想做这样的事情:
db.users.find({}, {name: 1, 'timestampFrom(_id)': 1})
Run Code Online (Sandbox Code Playgroud)
这样我就可以看到针对用户名的创建时间戳
有没有办法从投影中的ObjectID中提取时间戳?
在ansible中,我做了很多这样的事情:
- name: Check if [someFile] exists on host
stat: path=[someFile]
register: someFile
- fail: msg="[someFile] not found"
when: someFile.stat.exists == False
Run Code Online (Sandbox Code Playgroud)
我希望能够更简洁地表达它。像这样的东西:
- fail_on_missing_file:
path: [someFile]
Run Code Online (Sandbox Code Playgroud)
实现这一目标的最佳方法是什么?
if myString then myString else ""
Run Code Online (Sandbox Code Playgroud)
......感觉有点冗长.
我可以使用更短的替代品吗?
myString 可以是undefined或字符串.