在我的MV-VM应用程序中,我必须显示用户的头像.该图像在ViewSodel对象的ImageSource类型的属性中提供.这就是我目前所拥有的:
<Image Source="{Binding Path=UserAvatar}"/>
Run Code Online (Sandbox Code Playgroud)
但是,某些用户可能没有配置头像,因此UserAvatar是null.在这种情况下,我想显示一个默认的头像.没有人,但视图必须知道默认图像,因为它只是一个关注的演示.
那么如何使用给定的ImageSource显示图像,或者如果是ImageSource则显示特定的资源null.我是否必须在DataTriggers中使用某种DataTemplate?从现在起我只将它们用于ItemsControls,所以我不知道.
我已经为我的Seam应用程序编写了一些Drools规则,我想知道我是如何进行单元测试的.有没有人有任何示例代码可以告诉我如何去做这个?
我有这个问题已经有很长一段时间了,我已经在网上搜索了SO而且还没有找到解决方案.我希望你能帮助我.
我在两个实体之间有一个父子关系,如下所示:
@Entity
public class Parent {
// ...
@OneToMany(mappedBy = "parent", fetch = FetchType.LAZY, cascade = CascadeType.REMOVE)
private Set<Child> children = new HashSet<Child>();
// ...
}
@Entity
public class Child {
// ...
@ManyToOne(fetch = FetchType.LAZY)
private Parent parent;
// ...
}
Run Code Online (Sandbox Code Playgroud)
问题在于,当我创建一个新子节点并将其分配给父节点时,父节点在缓存中时不会更新.
Parent parent = new Parent();
em.persist(parent);
// ...
Child child = new Child();
child.setParent(parent);
em.persist(child);
parent.getChildren().size(); // returns 0
Run Code Online (Sandbox Code Playgroud)
当孩子被持久化时,我曾尝试使用@PreUpdate自动将子项添加到父项,但是当我们在2个不同的线程中有2个实体管理器时(比如JBoss),问题仍然存在,直到我们调用 em.refresh(parent)
所以问题是 - 有没有办法顺利消除问题并确保parent.getChildren()始终返回最新的儿童名单?
我是Spring的新手,所以我将Spring 3.0M3放在我的Mac上的Tomcat服务器上,创建了一个Eclipse项目,完成了一个Hello World,然后想要使用Hibernate来保持一个对象.我在我的MySQL服务器上创建了一个User表,用一个getter和setter创建了一个User对象(我真的希望Java在这里从Objective-C获取队列并添加动态属性.太多的代码混乱了生成的属性代码) ,创建一个UserDao对象来查找并保存用户,并进行bean配置.它相当不错......除了会话没有初始化.为什么是这样?我可以使用这些凭据从这台计算机上访问数据库.
我意识到这可能只是正常的初学者的东西,但我在谷歌搜索时发现的所有错误都是人们在从Hibernate 2转换到3时中途失去了会话.我没有过渡到目前为止因为我可以告诉会议永远不会.
这是我的错误:
SEVERE: Servlet.service() for servlet HelloApp threw exception
org.hibernate.LazyInitializationException: could not initialize proxy - no Session
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:57)
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111)
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:150)
at com.saers.data.entities.User$$EnhancerByCGLIB$$c2f16afd.getName(<generated>)
at com.saers.view.web.controller.HelloWorldController.handleRequestInternal(HelloWorldController.java:22)
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:763)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:709)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:613)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:637)
Run Code Online (Sandbox Code Playgroud)
这是我的相关bean的servlet配置:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" /> …Run Code Online (Sandbox Code Playgroud) 我的代码过去工作正常,现在它正在破碎.问题的减少如下:我想在分隔符处拆分源字符串(来自数据库,但这并不重要).分隔符不是固定的,而是用户提供的字符串.我曾经这样做过:
@results = split($splitString, $sourceStr);
Run Code Online (Sandbox Code Playgroud)
但是当用户要求加号(+)作为分隔符时,这会中断.这条消息有点神秘:
Quantifier follows nothing in regex; marked by <-- HERE in m/+ <-- HERE
Run Code Online (Sandbox Code Playgroud)
我的理解是它会中断,因为split不期望一个字符串,而是一个regexp.但是,我无法找到一种以有效方式逃避$ splitString的方法.这是我的玩具示例:
my $s = 'string 1 + $splitChar + string 2';
my $splitChar = "+";
my @result = split(/\\$splitChar/, $s);
print "num of results ".scalar(@result)."\n";
foreach my $value (@result) {
print "$value\n";
}
Run Code Online (Sandbox Code Playgroud)
但它根本没有分裂.我尝试了很多变化,但没有一个变化.请注意,用户指定的分隔符可能仅限于一个字符,但多字符解决方案会更好.
(是的,我可以编写自己专门的分割功能,但这不是重点).
($splitChar在单引号字符串示例中是故意的,我想这很清楚为什么).
当在.Net环境中实现接口(相当于Objective-C中的协议)时,IDE会自动将需要实现的属性和方法添加到类的文件中.是否存在会在Xcode环境中导致类似行为的设置?代表会这样做吗?
此时,我发现自己从Apple的在线文档中复制/粘贴协议/委托的方法.
如何在ASP.NET中刷新页面?(让它通过代码重新加载)
我宁愿不使用Response.Redirect(),因为我不知道我将在哪个页面上,因为它位于sharepoint内部的一个用户控件内.
我正在尝试解决将物品堆放到最方便的邮资大小的问题.物体的大小和形状会有所不同.已知所有对象的长度,宽度和高度.
例如,客户可以订购(长x宽x高)200x100x10cm对象(宽,长和平)以及2个50x50x50cm对象(立方体).如果我打包这个,我会把平坦的宽物体放在底部,2个立方体放在上面,并排.
有没有人知道或者知道一个相当有效的算法解决方案呢?或者甚至是我应该考虑解决这个问题的方法.我整个星期一直在编码,现在已经很晚了,我的大脑都被炒了.我还没有绝望,但我只想明天休息一天.
我设想的方法是创建一个表示3d空间的数组,每个数组元素代表该空间中的1平方/ cm.3d空间长度和宽度将基于最长的对象和最宽的对象.然后你就可以从最大的物体到最小的物体,找到足够的"洞"并随时填充它们.
虽然我确信会有一个数学公式可以更方便地做到这一点.
有任何想法吗?
我有一个名为'item'的对象.它有一个叫'类型'的属性
当我这样做:
<s:property value="item.type" />
Run Code Online (Sandbox Code Playgroud)
我明白了:问:
好的,所以我可以读取值,但是当我尝试这个:
<s:property value="item.type == 'Q'" />
Run Code Online (Sandbox Code Playgroud)
我得到一个空字符串
这给我一个空字符串:
<s:property value="%{#item.type == 'Q'}" />
Run Code Online (Sandbox Code Playgroud)
我甚至试过这个:
<s:property value="item.type.equals('Q')" />
Run Code Online (Sandbox Code Playgroud)
但是我得到了这个字符串:false
我如何得到'真实'?
我有VB6的问题.我有一个包含几个ComboBox对象的表单.我希望通过一个以SQL查询作为参数的函数来填充ComboBoxes.所以代码看起来像这样
Private Function FillComboBoxFromMDB(ByVal sDBName As String, _
ByVal sSQL As String) As ComboBox
'/*
' * Execute SQL in MDB and fill the ComboBox with the results
' * Returns filled ComboBox
' */
Dim DB As Database
Dim DBRecordset As Recordset
On Error GoTo FillComboBoxFromMDB_ErrHandler
Set DB = OpenDatabase(sDBName, False, False)
If Not DB Is Nothing Then
Set DBRecordset = DB.OpenRecordset(sSQL)
If Not DBRecordset Is Nothing Then
If DBRecordset.RecordCount > 0 Then
Call FillComboBoxFromMDB.AddItem(DBRecordset.Fields(0).Value)
' ^^ This row …Run Code Online (Sandbox Code Playgroud) hibernate ×2
algorithm ×1
asp.net ×1
caching ×1
datatrigger ×1
delegates ×1
drools ×1
escaping ×1
exception ×1
formula ×1
function ×1
ide ×1
interface ×1
java ×1
jboss-rules ×1
mvvm ×1
one-to-many ×1
parent-child ×1
perl ×1
persistence ×1
php ×1
protocols ×1
regex ×1
runtime ×1
seam ×1
session ×1
split ×1
spring ×1
struts2 ×1
unit-testing ×1
vb6 ×1
wpf ×1
xaml ×1
xcode ×1