我正在阅读有关事务隔离级别(可序列化、可重复读、已提交读、未提交读)的信息,并且对它们各自的用途感到有些困惑。我是否理解正确,例如在银行应用程序(汇款等)中使用的隔离级别可能是可序列化的,因为不允许放宽此规则?
我将JPA继承与JOIN策略(JPA2 / Hibernate)结合使用。我有一个具有共享字段(日期,时间,地点等)的抽象常规事件实体,以及它的子对象,例如OutdoorEvent,ClassicalMusicEvent等,每种类型都有特定的字段。我搜索所有事件,得到一个List<Event>显示的事件。但是,每种事件类型的处理都不同,因此我需要弄清楚每种Event对象的事件类型。现在是问题所在。我想出了两种解决方案。首先,instanceof关键字:
if (event instanceof OutdoorEvent) {
...
} else if (event instanceof OtherKindOfEvent) {
...
} etc.
Run Code Online (Sandbox Code Playgroud)
其次,我将一个临时枚举字段添加到Event实体,并在每个子类型的构造函数中设置此字段。然后我可以做:
if (event.getType() == EventType.OutdoorEvent) {
...
} else if (event.getType() == EventType.OtherKindOfEvent) {
...
} etc.
Run Code Online (Sandbox Code Playgroud)
哪种解决方案更好,或者是更多的OOP?还有其他解决方案吗?
我有两个矩阵,A(维度M x N)和B(N x P).实际上,它们是矢量的集合-以行向量,列向量中B.我想获得对于每对余弦相似性得分a和b,其中a是从矩阵A的向量(行)和b从矩阵的向量(列) B.
我已经开始乘以矩阵,这导致矩阵C(维数M x P).
C = A*B.
然而,为了获得余弦相似性得分,我需要将每个值除以C(i,j)两个相应矢量的范数.你能在Matlab中建议最简单的方法吗?
我已经创建了这个测试Matlab脚本文件:
numbers = [29 37 44 54 62];
for i=1:length(numbers)
fprintf('%d\n', numbers(i));
end
fprintf('***\n');
matlabpool local 5;
parfor i=1:length(numbers)
fprintf('%d\n', numbers(i));
end % image loop
fprintf('***\n')
for i=1:length(numbers)
fprintf('%d\n', numbers(i));
end
matlabpool close;
fprintf('***\n');
for i=1:length(numbers)
fprintf('%d\n', numbers(i));
end
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我得到以下输出:
29
37
44
54
62
***
112
111
107
117
115
***
29
37
44
54
62
***
29
37
44
54
62
Run Code Online (Sandbox Code Playgroud)
在fprintf该内parfor块打印的看似随机组数字中的哪一个,但是,总是相同的(112,111,107,117,115).知道为什么会这样吗?
UPDATE
有趣的是,只有从命令行运行脚本才会发生这种情况:
matlabR2012b -nodesktop -nosplash -nodisplay -r "run parfortest.m; exit"
Run Code Online (Sandbox Code Playgroud)
如果我首先打开一个Matlab会话并在parfortest …
我已经创建了一个 SSH 密钥(按照官方教程),将它添加到 GitHub 并创建了一个 Bash 脚本,该脚本提交并将单个文件推送到我在 Github 上的存储库。当我从命令行运行这个脚本时,一切正常并且更新被推送。但是,当我使用 设置作业时crontab -e,推送会生成以下错误:
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
我已经编辑了用户的 crontab ( crontab -e),即我没有使用sudo crontab -e. 我正在运行 Ubuntu 12.04。
将bean注入helper类时遇到问题.它的工作原理基本上是这样的:我在页面构造函数中创建一个对象,它可以完成一些工作,返回一些数据并在页面上显示这些数据.在此辅助对象中,应通过@Autowired注释注入服务.但是,当我使用它时,我总是得到一个空指针异常.我也尝试了,@SpringBean但没有帮助.另一方面,当我将此服务直接注入页面时@SpringBean,它可以访问并且工作正常.你知道问题出在哪里吗?
这是页面:
public class Page extends BasePage {
public Page() {
HelperObject object = new HelperObject(new Application("APP_NAME"));
String result = object.getData();
add(new Label("label", result));
}
}
Run Code Online (Sandbox Code Playgroud)
助手对象:
public class HelperObject {
private Application app;
@Autowired
private Service service;
public HelperObject(Application app) {
this.app = app;
}
public String getData() {
// use service, manipulate data, return a string
}
}
Run Code Online (Sandbox Code Playgroud) 我想测试一个句子是否包含除空白字符以外的任何内容.这是我目前使用的:
if len(teststring.split()) > 0:
# contains something else than white space
else:
# only white space
Run Code Online (Sandbox Code Playgroud)
这够好吗?有没有更好的方法呢?
我的应用程序运行在JPA/Hibernate,Spring和Wicket上.我正在尝试将我们的ORM从XML文件转换为JPA注释.带注释的模型如下所示:
@Entity
@Table(name = "APP_USER")
public class User extends BaseObject {
private Long id;
private String firstName;
private String lastName;
private String email;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@Column(name = "ID")
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Column(name="FIRST_NAME")
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
@Column(name="LAST_NAME")
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
} …Run Code Online (Sandbox Code Playgroud) 在我的Spring + JPA/Hibernate + Wicket应用程序中,我有一个QueryBuilder bean,我想在我的一个DAO中使用它,它在Criteria API的帮助下生成一个类型查询:
@Service(value="inboxQueryBuilder")
public class InboxQueryBuilder {
@PersistenceContext
EntityManager em;
CriteriaBuilder cb;
public InboxQueryBuilder() {
cb = em.getCriteriaBuilder();
}
public TypedQuery<App> getQueryForApps(AppSearchObject aso) {
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行应用程序时,我得到一个行的空指针异常:
cb = em.getCriteriaBuilder();
Run Code Online (Sandbox Code Playgroud)
即EntityManager不会被注入.你知道为什么吗?
此外,这是正确的和线程安全的,还是我应该为每个查询实例化我的InboxQueryBuilder?在这种情况下,我是否还应该注入EntityManager或者我应该将它作为构造函数参数传递(InboxQueryBuilder将为DAO中的每个查询实例化,其中有一个注入的EntityManager实例)?
我在两个文件中有两个大矩阵,A(21,000 x 80,000)和B(3,000 x 80,000)我想要乘以:
C = A*B_transposed
目前我有以下脚本:
A = dlmread('fileA')
B = dlmread('fileB')
C = A*(B')
dlmwrite('result', C)
exit
Run Code Online (Sandbox Code Playgroud)
但是,读取矩阵(前两行)需要很长时间,并且Matlab(在每个dlmread之后)继续打印这些矩阵.您知道如何禁用此打印并使流程更快吗?
在我使用Maven运行一堆Selenium(jUnit4)测试之后,我想做一个数据库清理(删除他们插入的东西等).这是在Tapestry/Spring/Hibernate上运行的旧项目和遗留数据库.我想用一个带@After注释的方法进行清理- 但注入DAO的/ Managers/SessionFactory不起作用.
测试是这样的:我mvn jetty:run-war在一个控制台中运行()应用程序,并在另一个控制台(mvn test)中启动测试- 它访问localhost:8080上的应用程序.
Penn Treebank格式没有注释名词短语的内部结构,例如
(NP (JJ crude) (NN oil) (NNS prices))
Run Code Online (Sandbox Code Playgroud)
要么
(NP
(NP (DT the) (JJ big) (JJ blue) (NN house))
(SBAR
(WHNP (WDT that))
(S
(VP (VBD was)
(VP (VBN built)
(PP (IN near)
(NP (DT the) (NN river)))))))
Run Code Online (Sandbox Code Playgroud)
我想提取头(价格和房子).你知道任何可以做到这一点的工具吗?