如何在JPA 1.0环境中使用Hibernate 3.x关闭bean验证?
我用persistence.xml尝试了几件事:
<persistence-unit name="bbstats" transaction-type="RESOURCE_LOCAL">
<properties>
DB stuff
<property name="javax.persistence.validation.mode" value="none" />
<property name="hibernate.validator.autoregister_listeners" value="false" />
</properties>
<validation-mode>NONE</validation-mode>
</persistence-unit>
Run Code Online (Sandbox Code Playgroud)
最后一个导致
org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid content was found starting with element 'validation-mode'. One of '{"http://java.sun.com/xml/ns/persistence":jta-data-source, "http://java.sun.com/xml/ns/persistence":non-jta-data-source, "http://java.sun.com/xml/ns/persistence":mapping-file, "http://java.sun.com/xml/ns/persistence":jar-file, "http://java.sun.com/xml/ns/persistence":class, "http://java.sun.com/xml/ns/persistence":exclude-unlisted-classes, "http://java.sun.com/xml/ns/persistence":properties}' is expected.
Run Code Online (Sandbox Code Playgroud)
但没有上述工作.谁能告诉我如何在JPA 1.0实现上做到这一点?
我在使用Python确定有效的Java包名称时遇到问题.这是代码:
packageName = "com.domain.lala" # valid, not rejected -> correct
#packageName = ".com.domain.lala" # invalid, rejected -> correct
#packageName = "com..domain.lala" # invalid, not rejected -> incorrect
#packageName = "com.domain.lala." # invalid, not rejected -> incorrect
matchObject = re.match("([a-z_]{1}[a-z0-9_]*(\.[a-z_]{1}[a-z0-9_]*)*)",
packageName)
if matchObject is not None:
print packageName + " is a package name!"
else:
print packageName + " is *not* a package name!"
Utilities.show_error("Invalid Package Name", "Invalid package name " + packageName + "!", "Ok", "", "")
Run Code Online (Sandbox Code Playgroud)
包名称必须以小写字母或下划线开头,每个点后面必须至少再跟一个小写字母或下划线.所有其他字符可以是小写字母,数字或下划线.不允许运行点,它可能不以点结束或以点开头.
我该如何解决这个问题?
你如何/打印一个(类型)查询背后的JPQL查询字符串,即经过参数设置?(例如用于调试目的)
一个简单toString()似乎没有做的伎俩......
谢谢
为什么Java EE 6 CDI缺少@ViewScoped和@FlashScoped注释?(特别是前者让我感到奇怪,因为CDI源于Seam世界,它已经知道了非常相似的ScopeType.PAGE ...)
使用CDI时建议的解决方法是什么?使用Seam 3?
谢谢
我刚开始使用PrimeFaces 3.3.1从RichFaces 3和4开始.
我有一个结构的数据表:
<f:facet name="header">
<h:outputText value="Employees" />
</f:facet>
<p:column sortBy="#{emp.lastName}">
<f:facet name="header">
<h:outputText value="Last Name" />
</f:facet>
<h:outputText value="#{emp.lastName}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="First Name" />
</f:facet>
<h:outputText value="#{emp.firstName}" />
</p:column>
...
<p:column>
<p:commandButton icon="ui-icon ui-icon-trash"
value="Remove"
process="@this"
update="employee-remove-dialog"
oncomplete="employeeRemoveDialog.show();">
<f:setPropertyActionListener target="#{employeeManager.currentEmployee}" value="#{emp}" />
</p:commandButton>
</p:column>
</p:dataTable>
<p:dialog header="Remove Employee"
modal="true"
appendToBody="true"
widgetVar="employeeRemoveDialog"
id="employee-remove-dialog">
<h:outputText value="Remove employee #{employeeManager.currentEmployee.fullName}?" />
<f:facet name="footer">
<p:commandButton icon="ui-icon ui-icon-check"
value="OK"
action="#{employeeManager.deleteEmployee}"
process="@this"
update="employee-list"
oncomplete="employeeRemoveDialog.hide();" />
<p:commandButton icon="ui-icon ui-icon-close"
value="Cancel"
onclick="employeeRemoveDialog.hide();"
ajax="false" …Run Code Online (Sandbox Code Playgroud) 我想在 EclipseLink 和 GlassFish 中使用实体图。
@Entity
@NamedQueries({
@NamedQuery(name = "invoice.all", query = "SELECT i FROM Invoice i")})
@NamedEntityGraph(name = "graph.invoice",
attributeNodes = {@NamedAttributeNode("invoiceNum")})
@Table(name = "INVOICE")
public class Invoice implements Serializable {
private int id;
private String bizonylatSzam;
...
}
EntityManager em = getEntityManagerFactory().createEntityManager();
EntityGraph eg = em.createEntityGraph("graph.invoice");
List<Invoice> invoiceList = em.createNamedQuery("invoice.all").setHint("javax.persistence.fetchgraph", eg).getResultList();
Run Code Online (Sandbox Code Playgroud)
如果我使用javax.persistence.loadgraph图形一切正常,但如果我使用javax.persistence.fetchgraph我有一个例外:
org.eclipse.persistence.exceptions.QueryException 异常说明:您必须在描述符 (Invoice) 中定义一个提取组管理器,以便在查询 (invoice.all) 上设置提取组
在 EclipseLink 网页中写:
... 使用编织技术..
Weaving 和 Java EE 应用服务器
默认的 EclipseLink 编织行为适用于使用 EclipseLink JPA 持久性提供程序的任何符合 …
JPA查询语言是JPQL还是EJBQL?我一直在阅读有关他们在这里和那里,JPQL似乎稍微更常出现,但像JBoss Seam的框架使用EJBQL无处不在,所以哪一个是对的?
我们为具有工具或发行人的实体提供UI,但从不两者都有.您可以从弹出搜索对话框中选择其中一个,并将其分配给实体.
用户可以在"搜索..."按钮旁边看到两者中的每一个的编号和名称.这两者都必须是不可编辑的,即我们分别<p:inputText ... readonly="true" ... />将输入变灰.
我们现在的要求是,当选择仪器和发行者中没有一个或两者时,不仅应该显示验证消息,而且标记的文本框readonly="true"以红色(及其标签)显示.
添加时,在按"保存"之前:

按"保存"后添加时:

我尝试了一些事情然后我最终得到了OmniFaces <o:validateMultiple>,它似乎朝着正确的方向发展.然而,我注意到验证器没有启动,正如你可以从图像中看到的那样......(我刚刚删除了readonly="true"你看到的效果)
这是代码摘录:
<!-- this panel is insider a form, yes -->
<h:panelGroup id="subpanel"
layout="block">
<o:validateMultiple id="instrument-or-issuer-validator"
validator="#{barrierCrossingManager.validateInstrumentOrIssuer}"
components="instrument-isin instrument-description issuer-number issuer-name"
message="..." />
<!-- some panel grid with the inputs -->
...
<p:panelGrid id="issuer-subpanel">
<p:row>
<p:column>
<p:outputLabel for="issuer-number" value="#{msg['common.number.label']}:" />
</p:column>
<p:column colspan="3">
<p:inputText id="issuer-number"
value="#{barrierCrossingManager.selectedIssuer.nbr}"
readonly="false" />
</p:column>
...
</p:row>
</p:panelGrid>
...
<h:messages id="msgs"
layout="list"
styleClass="subcontent-validation-msg-wrapper"
showDetail="false"
showSummary="true" />
</h:panelGroup> …Run Code Online (Sandbox Code Playgroud) 在Java EE 6、CDI 1.1.x、Seam 3 等环境中,我们需要查找当前视图的所有 CDI beans ( @ViewScoped)。到目前为止我所尝试的是使用:
@Named
@ViewScoped
public class ViewHelper
{
@Inject
private BeanManager beanManager;
public doSomethingWithTheBeanInstances()
{
Set<Bean<?>> beans = this.getBeanManager().getBeans(
Object.class, new AnnotationLiteral<Any>(){}
);
// do something
...
}
}
Run Code Online (Sandbox Code Playgroud)
但是,这会返回它管理的所有bean。
我只需要找到当前视图范围内的那些,并且 - 这将是理想的 - 只找到那些实现特定接口(在多个层次结构级别上继承)的接口。
有什么方法可以做到呢?
请注意,由于 CDI 没有视图范围,因此我们使用Seam 3来注释所有视图范围的 bean,例如:
@Named
@ViewScoped
public class ResultManagerColumnHandler extends BaseColumnHandler
{
....
}
Run Code Online (Sandbox Code Playgroud)
上面是一个需要寻找的实例(它@ViewScoped是 Seam 3 的 CDI 替代品)。
如何做呢?
java ×4
jpa ×3
jpql ×3
jsf ×3
cdi ×2
validation ×2
debugging ×1
eclipselink ×1
ejb ×1
entitygraph ×1
hibernate ×1
jakarta-ee ×1
java-ee ×1
java-ee-6 ×1
jsf-2 ×1
orm ×1
primefaces ×1
python ×1
readonly ×1
regex ×1
seam ×1
seam3 ×1
view-scope ×1