在我的项目中,我使用Hibernate进行程序化事务划分.每次在我的服务方法中,我都会写一些类似的东西.
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
.. perform operation here
session.getTransaction().commit();
Run Code Online (Sandbox Code Playgroud)
现在,我将使用声明式事务管理来重构我的代码.我现在得到了什么......
<context:component-scan base-package="package.*"/>
<bean id="mySessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
<property name="configurationClass">
<value>org.hibernate.cfg.AnnotationConfiguration</value>
</property>
</bean>
<tx:annotation-driven transaction-manager="txManager"/>
<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="mySessionFactory"/>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
服务类:
@Service
public class TransactionalService {
@Autowired
private SessionFactory factory;
@Transactional
public User performSimpleOperation() {
return (User)factory.getCurrentSession().load(User.class, 1L);
}
}
Run Code Online (Sandbox Code Playgroud)
而且简单的测试 -
@Test
public void useDeclarativeDem() {
FileSystemXmlApplicationContext ctx = new FileSystemXmlApplicationContext("spring-config.xml");
TransactionalService b = (TransactionalService)ctx.getBean("transactionalService");
User op = b.performSimpleOperation();
op.getEmail();
Run Code Online (Sandbox Code Playgroud)
当我尝试在Transactional方法之外获取用户电子邮件时,我得到了Lazy初始化异常,电子邮件是我的情况是一个简单的字符串.Hibernate甚至不执行sql查询,直到我在我的POJO上调用任何getter.
1)我在这里做错了什么?
2)这种方法有效吗? …
问候.
我不太清楚如何解释自己,但我相信一段代码会让你理解我想要做的事情:
template<class A, class B>
void myFunction(A<B>& list)
{
typename A<B>::iterator current = list.begin();
typename A<B>::iterator end = list.end();
while (current != end)
{
current++;
}
}
Run Code Online (Sandbox Code Playgroud)
其中A是STL容器(vector,list ...).它就像开始一样,但有模板:模板,模板内等......
问题是:当你的模板的一个参数本身就是一个模板时,你会怎么做......并且仍然希望支持这个模板支持的每个类型.
这当然不能编译(它说"A不是模板").
有人知道如何创建这样的模板吗?
有没有办法显示文档调用高速条中的2级隐藏文件?例如.emacs
答案很长
事实证明,未示出的文件由正则表达式控制
通常"^\\(\\..*\\)\\'",我认为这意味着以点开头的所有内容
设置正则表达式:
(setq speedbar-directory-unshown-regexp "^$")
Run Code Online (Sandbox Code Playgroud)
显示一切的诀窍.
我试图弄清楚在for循环语法中将参数从一个列表或dict传递给另一个的语法.
我正在寻找的理想结果是:
for bean in beans:
if bean.type == 'coffee':
print bean
Run Code Online (Sandbox Code Playgroud)
只是,而不是打印到stdout,我想收集该字符串数据并将其附加到另一个列表.最终扁平化列表.
踢球者,我想在一行中执行此操作.
我知道'.join()方法,我正在寻找这个结果,所以我可以从for-in循环过滤结果.
好的,所以我尝试使用sort来计算项目的向量,这样两个adjecant项目的大小是<= 2d.所以这是我的尝试:
struct item{
long number;
long size;
};
// d is global variable.
bool check(const item& x, const item& y)
{
return ((x.size + y.size) <= (2 * d));
}
// Items is a vector of item.
sort(items.begin(), items.end(), check);
Run Code Online (Sandbox Code Playgroud)
我做错了什么,或者甚至不可能使用这样的条件进行排序?
我正在从erlang.org课程中做这个练习:
2)编写一个在环中启动N个进程的函数,并在环中的所有进程周围发送M次消息.发送消息后,进程应正常终止.
这是我想出的:
-module(ring).
-export([start/2, node/2]).
node(NodeNumber, NumberOfNodes) ->
NextNodeNumber = (NodeNumber + 1) rem NumberOfNodes,
NextNodeName = node_name(NextNodeNumber),
receive
CircuitNumber ->
io:format("Node ~p Circuit ~p~n", [NodeNumber, CircuitNumber]),
LastNode = NodeNumber =:= NumberOfNodes - 1,
NextCircuitNumber = case LastNode of
true ->
CircuitNumber - 1;
false ->
CircuitNumber
end,
if
NextCircuitNumber > 0 ->
NextNodeName ! NextCircuitNumber;
true ->
ok
end,
if
CircuitNumber > 1 ->
node(NodeNumber, NumberOfNodes);
true ->
ok
end
end.
start(NumberOfNodes, NumberOfCircuits) ->
lists:foreach(fun(NodeNumber) -> …Run Code Online (Sandbox Code Playgroud) 有没有办法在HAML中实现这一目标?
<h1>Lorem ip<span class="red">sum</span><span class="subtitle">dolor</span></h1>
Run Code Online (Sandbox Code Playgroud)
我用过这个在线工具对话(http://html2haml.heroku.com/)
%h1
Lorem ip
%span.red sum
%span.subtitle dolor
Run Code Online (Sandbox Code Playgroud)
并在HTML中呈现:
<h1>
Lorem ip
<span class='red'>sum</span>
<span class='subtitle'>dolor</span>
</h1>
Run Code Online (Sandbox Code Playgroud)
我试图删除ip和sum之间的空格,但我无法实现它.
谢谢
在ubuntu下有没有相当于gigial的git gui?
我有以下设置:
public abstract class A
{
public void f()
{
//Want to make an instance of B or C here
//A bOrC = new ?
}
public abstract void f2();
}
public class B : A { public override void f2(){} }
public class C : A { public override void f2(){} }
Run Code Online (Sandbox Code Playgroud)
这可能吗?如果是这样的话?
编辑: bOrC需要是从中f()调用的特定派生类的类型
我想选择Magento中所有订单的清单.
这是我在目前正在处理的另一个PHP应用程序中显示来自magento的所有订单的列表所必需的.
有些人也可以使用Magento惯例给我写代码 Mage::
我正在使用Magento 1.4.2版本.
谢谢,
马克
c++ ×2
c# ×1
collections ×1
concurrency ×1
containers ×1
emacs ×1
erlang ×1
git ×1
haml ×1
hibernate ×1
java ×1
loops ×1
magento ×1
magento-1.4 ×1
mercurial ×1
orders ×1
php ×1
polymorphism ×1
python ×1
return ×1
sorting ×1
spring ×1
std ×1
templates ×1
ubuntu ×1