我有三张桌子:
CREATE TABLE PostAddresses
(
contact_id INTEGER NOT NULL,
ordinal_nbr SMALLINT NOT NULL,
PRIMARY KEY (contact_id, ordinal_nbr)
);
CREATE TABLE Foos
(
contact_id INTEGER NOT NULL,
ordinal_nbr SMALLINT NOT NULL,
PRIMARY KEY (contact_id, ordinal_nbr),
FOREIGN KEY (contact_id, ordinal_nbr) REFERENCES PostAddresses (contact_id, ordinal_nbr)
);
CREATE TABLE Bars
(
contact_id INTEGER NOT NULL,
ordinal_nbr SMALLINT NOT NULL,
numba INTEGER NOT NULL,
PRIMARY KEY (contact_id, ordinal_nbr, numba),
FOREIGN KEY (contact_id, ordinal_nbr) REFERENCES Foos (contact_id, ordinal_nbr)
);
Run Code Online (Sandbox Code Playgroud)
简单的逻辑:Bars - > Foos - > PostAddresses …
根据 Java EE 6 文档,JPA 1.0在声明注释时@OrderBy使用字段名称,而 JPA 2.0@OrderColumn使用列名称。看这里:
http://docs.oracle.com/javaee/6/api/javax/persistence/OrderBy.html
http://docs.oracle.com/javaee/6/api/javax/persistence/OrderColumn.html
前者自 JPA 1.0 起可用,后者是随 JPA 2.0 添加的。如果您阅读文档片刻,就会清楚@OrderBy使用字段/属性来指定顺序,而@OrderColumn使用 SQL/DDL 列名。
为什么会变成这样?对我来说,这看起来很不一致。
为什么事情会这样?它是 JPA 1.0 的遗物吗?
你如何使PrimeFaces p:blockUI动态地阻止某个组件,即EL条件?
使用案例:
手头的条件基本上是用户可以在页面上的模式:如果有任何超出的冲突,并且当前在用户请求中显示它们,则阻止导航树(显示超出冲突模式,阻止导航树),否则我们处于常规视图中,导航树应该被解锁(显示常规碰撞模式,导航树解锁).
当前的问题是,当处于"超出模式"时,当状态更改对话框将状态更改为未超过时,页面会将自身正确呈现/更新回常规模式,但导航树上的阴影仍然存在.由于我们现在处于常规模式,如果没有更多的冲突,我需要一些方法来解锁.
懂了吗?:-)
好的,首先是bean属性:
/*
* The logic of this method ensures that after status update the
* mode is automatically put back into regular view if no followup
* date exceeded collisions exist.
*/
public boolean isFollowupExceededCollisionsShown()
{
return getFollowupExceededCount() > 0 ? this.followupExceededCollisionsShown : false;
}
Run Code Online (Sandbox Code Playgroud)
第一次尝试:
查看VDL文档http://www.primefaces.org/docs/vdl/3.4/primefaces-p/blockUI.html显示了一些阻止属性.
<p:blockUI widgetVar="explorerBlocker"
block=":explorer-form"
blocked="#{collisionManager.followupExceededCollisionsShown}" />
Run Code Online (Sandbox Code Playgroud)
但上述情况绝对没有.
第二次尝试:
查看展示http://www.primefaces.org/showcase/ui/blockUI.jsf,客户端API似乎更合适.
想法是在状态更改对话框上按OK时根据ValueExpression调用show()或hide():
<p:dialog id="state-change-dialog"
widgetVar="stateChangeDialog"
modal="true"
appendToBody="true">
<h:form>
<ui:include src="/view/collisionmgmt/collisionStatusChangeGrid.xhtml" />
<h:panelGroup layout="block" styleClass="center-button-panel"> …Run Code Online (Sandbox Code Playgroud) 请注意以下数据库设计:
注意:不要在意这个"设计"的创造者的想法,但我不能改变它.
这是关于MobileTans和Authenticators... 之间的关系
MobileTans表的各自映射:
@Entity
@Table(name="MobileTans")
public class MobileTan implements Serializable
{
private static final long serialVersionUID = 1L;
@Id
@Column(name="ID", insertable=false, updatable=false)
private Integer id; // dupe read-only field, ID already in relationship below (writable)
@Basic(optional=false)
@Column(name="MOBILE_PHONE_NBR")
private String mobilePhoneNbr;
@Basic
@Column(name="ACTIVATION_CODE")
private String activationCode;
@Basic
@Column(name="ACTIVATION_ERROR")
private Boolean activationError = Boolean.FALSE;
@Basic
@Column(name="STATUS")
private Integer status;
@OneToOne(optional=false, fetch=FetchType.EAGER)
@JoinColumn(name="ID", referencedColumnName="ID")
@JoinColumn(name="AUTH_NAME", referencedColumnName="AUTHENTICATOR")
private Authenticator authenticator;
...
}
Run Code Online (Sandbox Code Playgroud)
这里的线索是列的重复只读映射(insertable=false, updatable=false) …
问题几乎说明了一切,但显然我正在寻找在Java EE 6环境中可能会错过Seam 2的事情("损失").
对于我的最新(小)项目JavaEE 6或更具体的JSF 2是修复要求,因此使用Seam 2不是一个选项(也不会是).尽管有些人说要让Seam 2使用JSF 2,但我从未做过.到目前为止,我只使用了Seam 2,我担心切换到普通的JavaEE环境会带来比我目前所知更多的问题.
该项目具有以下基本/核心要求:
其余的将是基于GUI,搜索表单,客户端验证等,将由RichFaces 4和JavaEE 6 bean验证处理.没有Web服务,没有宁静的URL,没有消息,没有电子邮件.
我可以看到使用Seam安全性肯定是一种损失,但我不确定Seam持久性,实体/查询框架,JBoss EL和其他将是什么,尤其是整体编程模型(导航,EL,bean) .请注意,我们将能够在有意义的时候添加Seam 3模块,因此您可以在"增益"部分的讨论中包含Seam 3.
那么,任何人都能清楚这一点吗?(它不一定是一个完整的总结,无论你想到什么,继续)
PS:我无法连接到Seam论坛所以我觉得我需要在这里问.
我有以下映射:
@Entity
@Table(name = "Prequalifications")
public class Prequalification implements Serializable
{
...
@ManyToMany
@JoinTable(name = "Partnerships", joinColumns = @JoinColumn(name = "prequalification_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "company_id", referencedColumnName = "id"))
private Set<Company> companies;
...
}
Run Code Online (Sandbox Code Playgroud)
在@ManyToMany+ @JoinTable映射关系中,是不是隐含的关联(链接)实体(这里Partnerships)被自动持久化,删除等等,即使
默认情况下,关系具有空级联集
?以上引用来自"Pro JPA 2,Mike Keith".
执行
em.merge(prequalification);
Run Code Online (Sandbox Code Playgroud)
在上述实体上确实保留了相关的伙伴关系而没有指定任何级联类型.
我是正确,这隐含的级联有被执行?在我看的任何地方都没有提到......
问题几乎说明了一切.
org.hibernate.Version.getVersionString()在EclipseLink中是否有等价物?
为什么通常没有便携式(JPA)方式来查询提供者信息?
在Python中,有没有办法按顺序检索项目被添加的键列表?
String.compareMethods = {'equals': String.equals,
'contains': String.contains,
'startswith': String.startswith,
'endswith': String.endswith}
Run Code Online (Sandbox Code Playgroud)
您在此处看到的按键用于选择(下拉)框,因此顺序很重要.
有没有办法没有保持一个单独的列表(并没有为我正在尝试做的事情过度复杂)?对于我所看到的,由于涉及散列而不可能......
我正在使用Python 2.6.x.
我的问题与此(或其他)有关:
如此处所述,没有简单的解决方案来解决在导航时销毁视图范围的Bean的问题,并且在会话期满时似乎也是如此。
释放(调用该@PreDestroy方法)JSF视图范围的Bean 的非平凡方法会是什么样子,或者更确切地说,是会话期满后立即释放?
我在GlassFish 3.1.2上使用Java EE 6和Mojarra2.1.x。
如何最好地处理调用层次结构中引发异常的多个级别的方法,以便如果是致命错误,程序将退出(显示错误对话框后)?
我基本上来自 Java。在那里我简单地将任何方法声明为throws Exception,重新抛出它并在顶层的某个地方捕获它。
然而,Python 不同。我的 Python 代码基本上如下所示。
编辑:添加了更简单的代码......
主入口函数( plugin.py):
def main(catalog):
print "Executing main(catalog)... "
# instantiate generator
gen = JpaAnnotatedClassGenerator(options)
# run generator
try:
gen.generate_bar() # doesn't bubble up
except ValueError as error:
Utilities.show_error("Error", error.message, "OK", "", "")
return
... usually do the real work here if no error
Run Code Online (Sandbox Code Playgroud)
JpaAnnotatedClassGenerator班级 (engine.py):
class JpaAnnotatedClassGenerator:
def generate_bar(self):
self.generate_value_error()
def generate_value_error(self):
raise ValueError("generate_value_error() raised an error!")
Run Code Online (Sandbox Code Playgroud)
我想返回给调用者一个异常,该异常将被抛出回该调用,直到它到达最外层try-except以显示带有异常消息的错误对话框。
问题:如何在 Python 中最好地完成此操作?我真的必须 …
jpa ×5
eclipselink ×3
hibernate ×2
java ×2
jsf ×2
mapping ×2
python ×2
ajax ×1
cascade ×1
cdi ×1
dictionary ×1
el ×1
exception ×1
glassfish ×1
java-ee ×1
java-ee-6 ×1
javascript ×1
jpa-2.0 ×1
jsf-2 ×1
key ×1
many-to-many ×1
primefaces ×1
seam ×1
seam2 ×1
seam3 ×1
sorting ×1
sql-order-by ×1
try-except ×1
version ×1
view-scope ×1