我正在收集有关flush()方法的信息,但我不清楚何时使用它以及如何正确使用它.根据我的阅读,我的理解是持久化上下文的内容将与数据库同步,即发出未完成的语句或刷新实体数据.
现在,我得到下列设想两个实体A
和B
(在一比一的关系,而不是由JPA执行或模拟).A
有一个复合PK,它是手动设置的,还有一个自动生成的IDENTITY字段recordId
.这recordId
应该B
作为外键写入实体A
.我正在保存A
并B
进行单笔交易.问题是自动生成的价值A.recordId
是不可用的事务中,除非我做的一个显式调用em.flush()
打完电话后em.persist()
上A
.(如果我有一个自动生成的IDENTITY PK,那么该值将在实体中直接更新,但这不是这里的情况.)
可以em.flush()
在一个事务中使用时造成什么伤害?
这是对这个问题的跟进,在这一点上我没有得到任何意见.这是一个简短的问题:
是否可以检测和调试来自多线程代码的问题?
通常我们必须告诉客户:"我们无法在这里重现问题,因此我们无法解决问题.请告诉我们重现问题的步骤,然后我们将解决它." 如果我知道这是一个多线程的问题,这是一个令人讨厌的答案,但大多数情况下我不这样做.我如何才能知道问题是多线程问题以及如何调试它?
我想知道是否有任何特殊的日志框架,调试技术或代码检查器,或其他任何东西来帮助解决这些问题.一般方法是受欢迎的.如果任何答案应该与语言相关,那么请将其保留为.NET和Java.
我正在寻找一些"推理规则"(类似于设置操作规则或逻辑规则),我可以用它来减少复杂或大小的SQL查询.有没有这样的东西?任何文件,任何工具?您自己找到的任何等价物?它在某种程度上类似于查询优化,但不是在性能方面.
说明不同:使用JOIN,SUBSELECTs,UNIONs(复杂)查询是否可以(或不)通过使用某些转换规则将其减少为更简单的等效SQL语句,从而产生相同的结果?
因此,我正在寻找SQL语句的等效转换,例如大多数SUBSELECT可以重写为JOIN的事实.
几乎每个程序员一生都做过一次:如果变量的值发生变化,设置一些标志.总有很多属性,如果有变化,你想跟踪
除了在每次属性更改时更新的标准对象范围脏标志之外,我对以上情况实现"脏标志"功能的不同方式感兴趣.必须有比在每个二传手中加入"dirty = true"更好的东西:它看起来很丑陋而且是一项繁琐的工作.
只要事务尚未提交,SQL Server是否允许事务中的约束违规(即延迟约束)?
我有一个正在运行的未提交的事务,当这个事务正在运行时,我将更改我的数据,以便它会违反某些约束(例如,有重复的主键).当我提交事务时,数据将处于一致的有效状态.这通常是在SQL中,特别是在MS SQL Server中允许的吗?
假设有两个Java String对象:
String str = "<my string>";
String strLower = str.toLowerCase();
Run Code Online (Sandbox Code Playgroud)
对于<my string>
表达式的每个值,它是否正确呢?
str.length() == strLower.length()
Run Code Online (Sandbox Code Playgroud)
评估到true
?
那么,是否String.toLowerCase()
为String的任何值保留原始字符串长度?
两个维度中的正则表达式是否有任何好的(或至少有趣但有缺陷的)类似物?
在一个维度上,我可以编写类似于/aaac?(bc)*b?aaa/
快速拉出交替b
s和c
s 的区域,其边界至少为3 a
秒.也许同样重要的是,我可以在一个月后回来,一目了然地看到它在寻找什么.
我发现自己在2d中编写类似问题的自定义代码(一些更复杂/受限制),并且有一个更简洁和标准化的符号会很好,即使我必须自己编写引擎.
第二个例子可能被称为"找到+".目标是找到一个3或更多a
s 的列,一个b
括号为3或更多的a
s,a
下面有三个或更多s.它应该匹配:
..7...hkj.k f
7...a h o j
----a--------
j .a,g- 8 9
.aaabaaaaa7 j
k .a,,g- h j
hh a----? j
a hjg
Run Code Online (Sandbox Code Playgroud)
并且可能写成[b ^(a {3})v(a {3})>(a {3})<(a {3})]或......
建议?
在Netbeans 7.2中是否有一种方法可以将所有打开项目的所有编译错误显示在某个任务列表中,就像"Action Items"一样?我找不到任何东西.
这背后的原因是我做了一些方法签名更改,例如影响20个不同的调用者,我想连续更改,而不必通过项目树.
今天我不得不修复一些使用线程的旧VB.NET 1.0代码.问题是从工作线程而不是UI线程更新UI元素.我花了一些时间才发现我可以使用InvokeRequired的断言来查找问题.
除了上面提到的并发修改问题,还有可能遇到的死锁,竞争条件等.由于调试/修复线程问题很痛苦,我想知道如何减少这个领域的编码错误/错误以及如何更容易地找到它们.所以,我要求的是:
如果适用且可能,请提供一些示例代码.答案应该与.NET框架(任何版本)相关.
在使用注释时,我偶然发现了以下代码(这是Hibernate @NotNull注释):
@Target(value = {ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER})
@Retention(value = RetentionPolicy.RUNTIME)
@Documented
@Constraint(validatedBy = {})
public @interface NotNull {
@Target(value = {ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER})
@Retention(value = RetentionPolicy.RUNTIME)
@Documented
public @interface List {
public NotNull[] value();
}
public String message() default "{javax.validation.constraints.NotNull.message}";
public Class<?>[] groups() default {};
public Class<? extends Payload>[] payload() default {};
}
Run Code Online (Sandbox Code Playgroud)
我想知道default
方法定义中的关键字/构造,这是我以前从未见过的.据我所知,它允许您为此方法(或注释属性)定义默认值.
现在我试图将此构造应用于普通接口,但它失败了.这将无法编译:
public interface DefaultTest {
public String test() default "value";
}
Run Code Online (Sandbox Code Playgroud)
但这会奏效:
public @interface DefaultTest {
public String test() default …
Run Code Online (Sandbox Code Playgroud) java ×3
sql ×2
transactions ×2
.net ×1
algorithm ×1
annotations ×1
c# ×1
constraints ×1
debugging ×1
graphics ×1
hibernate ×1
interface ×1
jpa ×1
logic ×1
netbeans ×1
netbeans-7.2 ×1
persistence ×1
reduction ×1
regex ×1
sql-server ×1
string ×1
vb.net ×1