小编Kaw*_*awu的帖子

你如何使用JPA 1.0关闭Hibernate bean验证?

如何在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实现上做到这一点?

validation hibernate

7
推荐指数
1
解决办法
1万
查看次数

用于Java包名称的Python正则表达式

我在使用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)

包名称必须以小写字母或下划线开头,每个点后面必须至少再跟一个小写字母或下划线.所有其他字符可以是小写字母,数字或下划线.不允许运行点,它可能不以点结束或以点开头.

我该如何解决这个问题?

python regex

6
推荐指数
1
解决办法
4376
查看次数

JPA:如何在设置参数后获取/打印(类型化)查询后面的JPQL查询字符串?

你如何/打印一个(类型)查询背后的JPQL查询字符串,即经过参数设置?(例如用于调试目的)

一个简单toString()似乎没有做的伎俩......

谢谢

java debugging jpa jpql

6
推荐指数
1
解决办法
8343
查看次数

CDI缺少@ViewScoped和@FlashScoped

为什么Java EE 6 CDI缺少@ViewScoped和@FlashScoped注释?(特别是前者让我感到奇怪,因为CDI源于Seam世界,它已经知道了非常相似的ScopeType.PAGE ...)

使用CDI时建议的解决方法是什么?使用Seam 3?

谢谢

java seam cdi java-ee-6

6
推荐指数
1
解决办法
3659
查看次数

在p:datatable中找不到PrimeFaces/JSF组件ID

我刚开始使用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)

jsf primefaces jsf-2

6
推荐指数
1
解决办法
1万
查看次数

EntityGraph - 您必须在描述符中定义一个提取组管理器,以便在查询上设置一个提取组

我想在 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 eclipselink entitygraph

6
推荐指数
0
解决办法
875
查看次数

EJB/JPA:它被称为JPQL还是EJBQL?

JPA查询语言是JPQL还是EJBQL?我一直在阅读有关他们在这里和那里,JPQL似乎稍微更常出现,但像JBoss Seam的框架使用EJBQL无处不在,所以哪一个是的?

java ejb jpa jpql java-ee

5
推荐指数
1
解决办法
1491
查看次数

JPQL是否有单行和/或多行注释?

问题说明了一切......如果它们存在,使用哪些字符?

java orm jpql

5
推荐指数
1
解决办法
854
查看次数

无论如何,在表单提交上验证只读组件

我们为具有工具或发行人的实体提供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)

validation jsf readonly

5
推荐指数
1
解决办法
684
查看次数

如何在当前视图(范围)中找到 CDI bean?

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 替代品)。

如何做呢?

jsf cdi seam3 view-scope jakarta-ee

5
推荐指数
1
解决办法
2903
查看次数