考虑以下简单实体关联:(EntityA)*-1(EntityB)在数据库中使用EntityA中的外键(entityB_id).
JPA实体正在单向映射此关系:
@Entity
EntityA {
@Id
@GeneratedValue
private long id;
@Column(nullable=false,length=250)
private String name;
@ManyToOne(optional=false)
private EntityB entityB;
... getter/setter ...
}
@Entity
EntityB {
@Id
@GeneratedValue
private long id;
@Column(nullable=false,length=250)
private String name;
... getter/setter ...
}
Run Code Online (Sandbox Code Playgroud)
如果进行简单查询:
EntityManager em = ...;
TypedQuery<EntityA> tq = em.createQuery("from EntityA a", EntityA.class);
tq.getResultList();
Run Code Online (Sandbox Code Playgroud)
我在Hibernate的SQL调试输出中看到EntityB查询是针对EntityA的每一行完成的:
Hibernate:
select
entitya0_.id as id8_,
entitya0_.entityB_id as entityB3_8_,
entitya0_.name as name8_
from
EntityA entitya0_
Hibernate:
select
entityb0_.id as id4_0_,
entityb0_.name as name4_0_
from
EntityB entityb0_
where
entityb0_.id=?
Run Code Online (Sandbox Code Playgroud)
即使默认的提取策略是EAGER(似乎是这种情况),也应该通过implizit …
此字符串替换有效:
"reverse, each word".gsub(/(\w+)/, "\\1a")
=> "reversea, eacha worda"
Run Code Online (Sandbox Code Playgroud)
和这样,单引号基本相同:
"reverse, each word".gsub(/(\w+)/, '\1a')
=> "reversea, eacha worda"
Run Code Online (Sandbox Code Playgroud)
但如果我试图反转字符串,它会失败:
"reverse, each word".gsub(/(\w+)/, "\\1a".reverse)
=> "a1\\, a1\\ a1\\"
Run Code Online (Sandbox Code Playgroud)
我玩过它,但似乎无法让相反的操作起作用.
如果我有一个Bifunctor[A,A]bf 实例,一个函数f : A => A和一个Boolean值p:
def calc[A, F[_,_]: Bifunctor](p: Boolean, bf: F[A, A], f: A => A): F[A, A] = {
val BF = implicitly[Bifunctor[F]]
BF.bimap(bf, (a : A) => if (p) f(a) else a, (a : A) => if (!p) f(a) else a)
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能更简洁(更具说服力)?基本上我试图在依赖于某个谓词的bifunctor(例如a Tuple2)的一侧调用一个函数.如果谓词为真,我想映射LHS和RHS,如果它是假的
val t2 = (1, 2)
def add4 = (_ : Int) + 4
calc(true, t2, add4) //should be (5,2)
calc(false, t2, …Run Code Online (Sandbox Code Playgroud) 我正在使用Ruby和Eventmachine库编写应用程序.我非常喜欢非阻塞I/O和事件驱动系统的想法,我遇到的问题是日志记录.我正在使用Ruby的标准记录器库.它不是永远记录日志,但似乎不应该阻止它,它确实.那里有一个库,它将Ruby的标准记录器实现扩展为非阻塞,或者我应该为我的日志调用调用EM :: defer吗?有没有办法让eventmachine为我做这个呢?
新手问题:
作为对请求的响应,我的服务器返回一个类似树的数据结构,我想在客户端将它呈现为树.但是,将其转换为树窗口小部件的逻辑有点复杂.
我应该在服务器上构建GWT树小部件并按原样返回它,还是应该坚持原始数据,并在客户端制定小部件?
我想在JDateChooser字段中检测日期何时更改,以便我可以更新另一个字段.
这可能吗?如果是这样我应该在哪里开始?我已经查看了文档,遗憾的是没有添加类似ActionListener或StateChangeListener的方法(我的第一个想法).
什么是最好的方法 ?
只需循环并放置键和零,或者是另一个更优雅或现有的库方法.如果它有任何有用的功能,我也使用谷歌的guava java库?
想要检查是否有类似于列表的复制方法或Map的putAll方法,但仅用于键.
有没有办法将动态参数传递给自定义jquery验证方法?具体来说,我正在寻找一种方法来比较2个控件,并希望将一个控件传递给另一个的验证方法进行比较.
这是我目前拥有的:
//Add method
$.validator.addMethod("lowerInt", function(value, element, params) {
alert('inside method');
if (isNaN(parseInt(params)))
return true;
else
return parseInt(value) < parseInt(params);
}, $.validator.format("Please enter a number smaller than {0}"));
//Set validation
$("#form1").validate({
rules: {
lowInt: {
required: true,
integer: true,
lowerInt: 8 //I would like to pass a dynamic value here
}
}
});
Run Code Online (Sandbox Code Playgroud)
如果我按上述方式运行它,它可以正常工作.如果我将传入lowerInt的8更改为$('#highInt').val(),它似乎只设置了一次lowerInt函数的值,并且从不更新它.我意识到我可以通过调用$('#highInt').val()来获取方法中的值,但是如果可能的话我想传递该值.
我需要腌制一个scapy包.大部分时间都可以使用,但有时候pickler会抱怨一个函数对象.根据经验:ARP数据包泡菜很好.一些UDP数据包存在问题.
我在单个方法中使用以下代码行来显式检查并信任来自以下主机的SSL证书:MyTrustedCompany.com:
ServicePointManager.ServerCertificateValidationCallback = Function(obj As [Object], certificate As X509Certificate, chain As X509Chain, errors As SslPolicyErrors) (certificate.Subject.Contains("CN=MyTrustedCompany.com"))
Run Code Online (Sandbox Code Playgroud)
代码没问题 - > 100%完美运行.
问题是,它太遥远了.我认为它的范围只在我对其进行十分转换的方法中,但显然它是'ServicePointManager'对象上的Shared属性,然后必须持久保存整个应用程序,这是我不想要的.
问题是后来我打电话给我的网络服务,并得到"无法建立信任关系..."的例外.这是因为在上面的代码行中,我检查了该方法的SSL证书的主机名.我很快就从回调中测试了返回'True',因此所有证书都是可信任的,而不是检查一个specefic名称(即MyTrustedCompany)和subiquent请求是否有效.这就是我知道这个回调赋值到达父亲的方法.当然,我可以扩展回调以包括所有其他证书名称,但我宁愿做的是将'ServerCertificateValidationCallback'设置回其默认行为.像下面的伪代码:
ServicePointManager.ServerCertificateValidationCallback = Nothing 'Default checking behavior
Run Code Online (Sandbox Code Playgroud)
如何删除自定义验证并将其设置回其默认行为?谢谢!