我有一个JPA持久化对象模型,它包含多对一关系:一个帐户有许多交易.交易有一个帐户.
这是代码的片段:
@Entity
public class Transaction {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@ManyToOne(cascade = {CascadeType.ALL},fetch= FetchType.EAGER)
private Account fromAccount;
....
@Entity
public class Account {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@OneToMany(cascade = {CascadeType.ALL},fetch= FetchType.EAGER, mappedBy = "fromAccount")
private Set<Transaction> transactions;
Run Code Online (Sandbox Code Playgroud)
我能够创建一个Account对象,向其添加事务,并正确地持久保存Account对象.但是,当我创建一个事务,使用现有已经存在的帐户,并持久化事务时,我得到一个例外:
if (account.getId()!=null) {
account = entityManager.merge(account);
}
Transaction transaction = new Transaction(account,"other stuff");
// the below fails with a "detached entity" message. why?
entityManager.persist(transaction);
Run Code Online (Sandbox Code Playgroud)
因此,我能够持久保存包含交易的账户,但不能持有具有账户的交易.我认为这是因为帐户可能没有附加,但这段代码仍然给了我同样的例外:
@Entity
public class Transaction {
@Id …Run Code Online (Sandbox Code Playgroud) 基本问题:插入外部鼠标会导致chrome和firefox将滚动条添加到浏览器中的页面(我构建的).我试图找出原因,但很难找到信息.我们已经在OSX 10.7.5和10.8.5上测试并重现了这个问题.
我的理论是,由于两个浏览器都以这种方式响应,事件序列如下:
我已经对这两种状态的计算样式进行了差异化,并没有区别,只是为了排除它.这是一个动画的GIF动画.我正在做的唯一触发更改的是插入外接鼠标:

我的问题是,当插入外部鼠标时,从操作系统向浏览器发送了什么样的事件,以及如何更深入地了解该事件的处理方式?
我正在开发一个clojure Web应用程序,使用leiningen 2进行构建和部署.这是一个非常香草的webapp,我正在使用compojure,ring和lein-beanstalk.我的应用程序需要使用数据库凭据和S3凭据,我不确定在我的应用程序中存储和访问它们的最佳方法.
使用leiningen 2处理需要与我的应用程序一起部署的数据库凭据等敏感内容的常用方法是什么?
我可以在弹性beanstalk上设置环境变量,但是如果可能的话我想避免使用该路由.
我正在寻找一个java库,它将生成一个集合的所有可能的顺序排列.我能找到的唯一一个库是google代码上的combinatoricslib.我发现很难相信这是唯一能够做到这一点的java库,我很坦率地对此非常惊讶.
JDK中有什么东西,或apache commons math或其他库提供相同的功能吗?
我很高兴使用combinatoricslib,我只是无法相信这是唯一的选择,除了自己编写算法,这当然不是那么困难,但是.isBlankOrNull()和apache commons都没有.
我有一个弹性搜索运行的内存实例,并做一些探索性编码来学习搜索java API.我能够将文档提交到索引并使用GET检索它们,但是当我尝试简单的搜索查询时,我没有得到任何结果.
// first, try a get request, to make sure there is something in the index
GetResponse results = client.prepareGet(INDEX_NAME, INDEX_TYPE, testID)
.execute()
.actionGet();
// this assertion succeeds, as we expect it to.
assertThat(results.getId()).isEqualTo(testID);
// next, try the simplest possible search
SearchResponse s1 = client.prepareSearch(INDEX_NAME).setQuery(matchAllQuery())
.execute()
.actionGet();
// this assertion fails. why? answer: when we have an in-memory node, we have to
// manually call refresh on the indexing, after submitting a document.
assertThat(s1.getHits().totalHits()).isGreaterThanOrEqualTo(1);
Run Code Online (Sandbox Code Playgroud)
经过一些测试,我认为问题在于我如何设置我的Node和相关客户端(在内存中):
@BeforeMethod
public void setup() …Run Code Online (Sandbox Code Playgroud) 我有一个类,Song,它是NSManagedObject的子类.我正在使用GDB来尝试找出我遇到的问题,并且很难使用gdb在我的类上调用访问器.
Song.h:
@property (nonatomic, retain) NSString * title;
Run Code Online (Sandbox Code Playgroud)
Song.m:
@dynamic title;
Run Code Online (Sandbox Code Playgroud)
在调试器中,我看到对象上的"title"字段,当我尝试使用访问器打印值时,如果我理解正确,它应该在运行时生成,它会给我一个错误:
(gdb) po aSong <Song: 0x59188d0>
(entity: Song; id: 0x59162d0
<x-coredata://99BE63F8-840A-47B5-A259-BCD74E1811C4/Song/p2>
; data: {
composers = "<relationship fault: 0x4d62f30 'composers'>";
dateCreated = nil;
songLists = "<relationship fault: 0x59243c0 'songLists'>";
title = "cancel?"; })
(gdb) p aSong.title There is no member named
title.
(gdb) p [aSong title]
Target does not respond to this message selector.
Run Code Online (Sandbox Code Playgroud)
我有可能在这里做一些非常愚蠢的事情,但我做错了什么?有没有办法反省一个对象,看看它将使用GDB响应什么消息?
我正在努力将一个项目从java 7迁移到8,并且在Mockito"遇到"情况下遇到编译错误我很难追踪到:
when(queryRunner.query(any(String.class), any(ResultSetHandler.class), anyVararg())).thenReturn(mockedWordResultList);
Run Code Online (Sandbox Code Playgroud)
给我一个编译错误:
java: reference to query is ambiguous both method
<T>query(java.lang.String,java.lang.Object,org.apache.commons.dbutils.ResultSetHandler<T>)
in org.apache.commons.dbutils.QueryRunner and method
<T>query(java.lang.String,org.apache.commons.dbutils.ResultSetHandler<T>,java.lang.Object...)
in org.apache.commons.dbutils.QueryRunner match
Run Code Online (Sandbox Code Playgroud)
在构建1.8.0-b128中发生此错误,但在1.7.0_45中不会发生.我正在使用mockito 1.9.5.
anyVarArg()在java 8中使用参数匹配的正确方法是什么?
我对clojure很新,而且我之前没有做过大量的lisp.我有一个包含以下内容的函数:
(defn chord
([scale degree num_voices]
(if
(keyword? degree)
(take num_voices (take-nth 2 (cycle (invert scale (.indexOf scale degree)))))
(take num_voices (take-nth 2 (cycle (invert scale degree))))))
Run Code Online (Sandbox Code Playgroud)
很显然,这个代码是差,因为有两个几乎相同的函数调用这里是最理想的,这里唯一的区别是(.indexOf scale degree)VS degree.
什么是Clojure/Lisp删除此代码重复的方法?我觉得它应该涉及让,但我不是积极的.还可以理解与该代码块相关的任何其他通用指针.
编辑:我根据andrew cooke的建议重新考虑了代码,该函数现在读取:
(defn chord
([scale degree num_voices]
(let [degree (if (keyword? degree) (.indexOf scale degree) degree)]
(take num_voices (take-nth 2 (cycle (invert scale degree))))
)
)
Run Code Online (Sandbox Code Playgroud)
感谢所有回答如此之快的人.
我正在将身份验证添加到我的应用程序中,该应用程序使用 react-router。我在 react-router 中的auth-flow示例之后对客户端路由进行了模式化,但使用了 Passport 而不是示例使用的 localstorage。这一切正常。
下一步是保护我为 express in 定义的路由server.js。我可以将重定向发送到/#/login,但这感觉很脆弱。在服务器端将URL 导出到 react-router 提供的登录路由的最佳方法是什么?
这是我现在在 my 中的内容server.js,它有效,但感觉很脆弱:
app.get('/protected',
// redirecting to #/login seems bad: what if we change hashhistory, etc.
passport.authenticate('local', { failureRedirect: '/#/login'}),
function(req, res) {
res.render('whatever');
});
Run Code Online (Sandbox Code Playgroud) 我的注册商gandi给了我一个中间证书来安装,所以我有3个文件:
我在heroku上使用SSL Beta服务.heroku CLI heroku _certs:add只有两个参数,CRT和KEY.我该如何安装中间证书?
java ×4
clojure ×2
browser ×1
gdb ×1
heroku ×1
hibernate ×1
https ×1
ios ×1
java-8 ×1
jpa ×1
leiningen ×1
lisp ×1
macos ×1
mockito ×1
node.js ×1
objective-c ×1
passport.js ×1
permutation ×1
react-router ×1
reactjs ×1
refactoring ×1
ssl ×1