我有一种情况,两个人可能从两台不同的计算机上处理相同的订单(存储在MS SQL数据库中).为了防止数据丢失,如果首先保存他的订单副本,然后稍后第二个将保存他的副本并覆盖第一个,我在保存之前添加了对lastSaved字段(datetime)的检查.
代码看起来大致如下:
private bool orderIsChangedByOtherUser(Order localOrderCopy)
{
// Look up fresh version of the order from the DB
Order databaseOrder = orderService.GetByOrderId(localOrderCopy.Id);
if (databaseOrder != null &&
databaseOrder.LastSaved > localOrderCopy.LastSaved)
{
return true;
}
else
{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
这大部分时间都有效,但我发现了一个小bug.
如果orderIsChangedByOtherUser返回false,则本地副本将其lastSaved更新为当前时间,然后保留到数据库.现在,本地副本和DB中的lastSaved值应该相同.但是,如果再次运行orderIsChangedByOtherUser,即使没有其他用户对DB进行更改,它有时也会返回true.
在Visual Studio中进行调试时,databaseOrder.LastSaved和localOrderCopy.LastSaved似乎具有相同的值,但是当仔细观察时,它们会有几次相差几毫秒.
我发现这篇文章是关于SQL中datetime的毫秒精度的简短注意事项:
另一个问题是SQL Server以3.33毫秒(0. 00333秒)的精度存储DATETIME.
我能想到的解决这个问题的方法是比较两个日期时间,如果相差小于10毫秒,则认为它们相等.
那么我的问题是:有没有更好/更安全的方法来比较MS SQL中的两个日期时间值,看它们是否完全相同?
我希望在bash中有这样的管道
#! /usr/bin/bash
cut -f1,2 file1.txt | myperl.pl foo | sort -u
Run Code Online (Sandbox Code Playgroud)
现在myperl.pl
它有这样的内容
my $argv = $ARG[0] || "foo";
while (<>) {
chomp;
if ($argv eq "foo") {
# do something with $_
}
else {
# do another
}
}
Run Code Online (Sandbox Code Playgroud)
但是为什么Perl脚本无法识别通过bash传递的参数?即代码打破此消息:
Can't open foo: No such file or directory at myperl.pl line 15.
Run Code Online (Sandbox Code Playgroud)
正确的方法是什么,以便我的Perl脚本可以同时接收标准输入和参数?
我有一个循环,遍历我们网站上的所有新闻.其中一个字段是date ${newsitem.value['Date']}
,以毫秒为单位.我想在网页上以月/日/年格式显示此日期.我认为JSTL格式标签<fmt:formatDate>
会有所帮助,但我还没有成功.你知道怎么做吗?
<cms:contentaccess var="newsitem" />
<h2><c:out value="${newsitem.value['Title']}" /></h2>
// display date here
<c:out value="${newsitem.value['Text']}" escapeXml="false" />
Run Code Online (Sandbox Code Playgroud) 我需要将我们的应用程序分成轻量级的gui应用程序和业务逻辑应用程序.这不是客户端/服务器设置,因为"服务器"组件将只有一个客户端.
应用程序的另一个限制是它只有一个入口/出口点.因此,如果我们使用RMI,它只会在一个函数上.所有表单数据已经包装成一个字符串并通过一个传输区域.
我应该只使用Java套接字来增强此应用程序,还是使用RMI?还是其他一些Java技术?
我之前的帖子概述了我们的应用程序的要求,但它没有得到答复./sf/ask/182316991/
干杯.
我知道这是oops中一个非常基本的概念.但我仍然无法理解.我理解为什么成员变量是私有的,因此类用户不能通过设置无效值来滥用它.
但这怎么能适用于这些方法呢?
我尝试使用这个映射:
@Entity
@Table(name="ecc.\"RATE\"")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="DISCRIMINATOR", discriminatorType= DiscriminatorType.STRING)
public abstract class Rate extends GenericBusinessObject {
...
}
@Entity
@DiscriminatorValue("E")
public class EntranceRate extends Rate {
@ManyToOne
@JoinColumn(name = "\"RATES_GRID_ID\"")
protected RatesGrid ratesGrid;
...
}
@Entity
@Table(name="ecc.\"RATES_GRID\"")
public class RatesGrid extends GenericBusinessObject {
/** */
@OneToMany(mappedBy = "ratesGrid", targetEntity = EntranceRate.class, fetch=FetchType.LAZY)
private List<EntranceRate> entranceRates;
}
Run Code Online (Sandbox Code Playgroud)
当我尝试entranceRates
从ratesGrid
对象访问我的列表时,我收到此错误:
Object with id: 151 was not of the specified subclass: com.ecc.bo.rate.EntranceRate (loaded object was of wrong class class com.ecc.bo.rate.AnnualRate)
Run Code Online (Sandbox Code Playgroud)
看看生成的sql,我在where子句中找不到"discriminator ="的痕迹.我究竟做错了什么 …
如何在一个脚本中<iframe>
包含包含它的页面的任何概念?框架中的脚本可以访问它之外的任何上下文吗?跨域怎么样?
到目前为止,我认为对于包含页面<iframe>
是完全不可知的,但我看到了一个与此信念相矛盾的例子.
<iframe>
在包含页面的内容中究竟能做什么和不能做什么?
有没有办法在.NET中实现Erlang风格的轻量级进程?
我找到了一些实现Erlang消息传递模型(actor模型)的项目.例如,阿克苏姆.但我没有发现轻量级流程的实现.我指的是在单个OS线程或OS进程的上下文中运行的多个进程.
我正在C#中编写一个websercive,它将生成pdf文件并作为byte []发送回调用者.pdf文件是使用第三方组件生成的,但我正在努力进行转换.pdf只是Web服务中的内存中对象,在将生成的pdf返回给调用者之前,我找不到将生成的pdf转换为byte []的任何好方法.有什么建议吗?
编辑澄清:
我正在使用pdf内存中对象(确切地说是Aspose.pdf Pdf-object),它是使用发送到Web服务的数据在Web服务中构建的.它永远不会被web服务保存,调用者应该将byte []转换回pdf文件并将其保存在结尾.
我有一个包含像这样的布尔字段的类:
public class MyClass
{
private bool boolVal;
public bool BoolVal
{
get { return boolVal; }
set { boolVal = value; }
}
}
Run Code Online (Sandbox Code Playgroud)
可以使用该属性从许多线程读取和写入该字段.我的问题是我是否应该使用锁定语句来阻止getter和setter?或者我应该只使用volatile关键字并保存锁定?或者我应该完全忽略多线程,因为获取和设置布尔值原子?
问候,
.net ×2
c# ×2
datetime ×2
java ×2
sql ×2
bash ×1
bytearray ×1
concurrency ×1
cross-domain ×1
erlang ×1
hibernate ×1
html ×1
iframe ×1
inheritance ×1
javascript ×1
jpa ×1
jstl ×1
linux ×1
oop ×1
perl ×1
precision ×1
rmi ×1
sockets ×1
sql-server ×1
stdin ×1
unix ×1
web-services ×1