小编Kaw*_*awu的帖子

JPA如何处理部分,非不相交的继承(在每表类方案中使用InheritanceType.JOINED)以及EntityManager.find()?

我在使用JPA注释建模/理解部分,非不相交的继承时遇到问题.

以下是四个表格:

CREATE TABLE Persons (
  id INTEGER NOT NULL,
  first_name VARCHAR(50) NOT NULL,
  last_name VARCHAR(50) NOT NULL,
  PRIMARY KEY (id));

CREATE TABLE Referees (
  id INTEGER NOT NULL,
  license_nbr VARCHAR(10) DEFAULT NULL NULL,
  PRIMARY KEY (id),
  CONSTRAINT referees_persons_fk
    FOREIGN KEY (id)
    REFERENCES Persons (id)
    ON DELETE CASCADE
    ON UPDATE CASCADE);

CREATE TABLE Coaches (
  id INTEGER NOT NULL,
  license_nbr VARCHAR(10) DEFAULT NULL NULL,
  PRIMARY KEY (id),
  CONSTRAINT coaches_persons_fk
    FOREIGN KEY (id)
    REFERENCES Persons (id)
    ON …
Run Code Online (Sandbox Code Playgroud)

inheritance hibernate jpa eclipselink

3
推荐指数
1
解决办法
2320
查看次数

获取GET请求参数到@ViewScoped bean

我有一个(请求范围的)列表,用户可以从中选择"PQ"(链接列表).单击或以其他方式输入浏览器时,将显示每个PQ的主页面.每个PQ的页面都是表格

http://localhost:8080/projectname/main.jsf?id=2

这是PQ bean的第一个:

@Named
@ViewScoped
public class PqHome implements Serializable
{
    @PersistenceContext(unitName="...")
    private EntityManager em;

    private Integer id;
    private PQ instance;

    @PostConstruct
    public void init()
    {
        System.out.println("ID is " + id); // ID from URL param

        instance = em.find(PQ.class, id);       
    }

    public Integer getId()
    {
        return id;
    }

    public void setId(Integer id)
    {
        this.id = id;
    }

    public PQ getInstance()
    {
        return instance;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是main.xhtml:

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                ...>
  <ui:define name="metadata">
    <f:metadata>
      <f:viewParam name="id" value="#{pqHome.id}">
        <f:convertNumber integerOnly="#{true}" />
      </f:viewParam> …
Run Code Online (Sandbox Code Playgroud)

java javabeans cdi scopes jsf-2

3
推荐指数
2
解决办法
8810
查看次数

Zend Framework:为什么空格会对我的正则表达式进行验证?

我有以下代码:

$sfKeyword = new Zend_Form_SubForm();

$tfKeyword = $sfKeywords->createElement('text', 'keyword');
$tfKeyword->setLabel('Keyword: ');
$tfKeyword->addValidator('regex', false, array('/[a-zA-Z_][a-zA-Z_0-9]*/'));
Run Code Online (Sandbox Code Playgroud)

此正则表达式验证关键字,并且应该仅允许az,AZ和_作为第一个字符,然后另外允许数字0-9,零次或多次出现.

但是当输入一些中间有空格的字符串时,字符串会传递验证程序,而不会显示错误消息.情况并非如此.

注意,我也试过了

'/[a-zA-Z_][a-zA-Z_0-9]*/s'
Run Code Online (Sandbox Code Playgroud)

但没有区别(正如预期的那样).

正则表达式(或Zend框架)有什么问题?

regex validation zend-framework zend-form

2
推荐指数
1
解决办法
1122
查看次数

Hibernate:AnnotationException:未知的mappedBy in ...在反向(mappedBy)上引用属性unknown,双向@OneToOne关联

我有以下简单的设计:

有效的XHTML http://www.kawoolutions.com/media/persons-roles-reduced.png

这基本上是JPA不支持的非不相交继承的解决方法.人可以自己存在,但可以选择单个玩家实体,单个教练实体或两个实体来完成逻辑.

以下是相当容易理解的JPA 2.0映射(注意@Id前向关联):

@Entity
@Table(name = "Persons")
public class Person implements Serializable
{
    @Id
    @Column(name = "id")
    private Integer id;

    @Column(name = "first_name")
    private String firstName;

    @Column(name = "last_name")
    private String lastName;

    @OneToOne(mappedBy = "person")
    private Coach coach = null;

    @OneToOne(mappedBy = "person")
    private Player player = null;

    ...
}

@Entity
@Table(name = "Players")
public class Player implements Serializable
{
    @Column(name = "registration_nbr")
    private String registrationNbr = null;

    @Id
    @OneToOne
    @JoinColumn(name = "id")
    private Person …
Run Code Online (Sandbox Code Playgroud)

mapping hibernate jpa bidirectional one-to-one

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

Python:项目的子列表,取决于项目的特定值,例如boolean

我有一个类似对象的列表,其中一些有一定的值集,这里更具体地说是一个布尔标志:

myList = [WhatEver(..., True, ...), WhatEver(..., True, ...), WhatEver(..., False, ...), WhatEver(..., True, ...), WhatEver(..., False, ...), ...]
Run Code Online (Sandbox Code Playgroud)

在Python中是否有一种无痛的方法来获取其值设置为特定值的项的子列表,这里是TrueFalse

python boolean list sublist

2
推荐指数
1
解决办法
5147
查看次数

JSF 2:如何将包含要调用的参数的操作传递给Facelets子视图(使用ui:include和ui:param)?

这基本上是对这个答案的延伸.

我试图在方法/动作调用中获取参数(对于列表/数据表中的删除按钮).

客户:

<ui:include src="...">
  <ui:param name="acceptButtonBean" value="#{repoHome}" />
  <ui:param name="acceptButtonAction" value="removeIndividualDocument(#{doc.id})" />
</ui:include>
Run Code Online (Sandbox Code Playgroud)

子视图:

<h:commandButton value="Continue"
                 action="#{acceptButtonBean[acceptButtonAction]}" />
  ...
</h:commandButton>
Run Code Online (Sandbox Code Playgroud)

但是,JSF失败了,例外情况说:

...yadda, yadda
02:46:02,431 ERROR [stderr] (http--127.0.0.1-8080-5) Caused by: javax.el.MethodNotFoundException: /subviews/remove-doc-clink-popup.xhtml @37,98 action="#{acceptButtonBean[acceptButtonMethod]}": Method not found: com.company.project.beans.RepoHome@34b183e7.removeExternalDocument(89)()
02:46:02,431 ERROR [stderr] (http--127.0.0.1-8080-5)    at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:109)
02:46:02,431 ERROR [stderr] (http--127.0.0.1-8080-5)    at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
02:46:02,431 ERROR [stderr] (http--127.0.0.1-8080-5)    ... 31 more
Run Code Online (Sandbox Code Playgroud)

请注意

....RepoHome@34b183e7.removeExternalDocument(89)()
Run Code Online (Sandbox Code Playgroud)

它不能那样工作.JSF似乎附加括号无所谓.

它可以以不同的方式实现,但仍然采用上述技术吗?如果是这样,怎么样?

如果没有,为什么不工作?是否指定了?这是Mojarra 2.0.x的错误吗?如果有其他括号,我认为省略括号没有问题...

注意我不是在寻找替代解决方案,比如使用f:param,f:attribute或f:setPropertyActionListener.

提前致谢

facelets el jsf-2

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

无法在带有JSF 2.3的Wildfly 14中注入FacesContext(Mojarra,主模块)

我有一个豆:

import javax.faces.context.FacesContext;
import javax.faces.view.ViewScoped;

...

@Named
@ViewScoped
public class SimpleBean implements Serializable
{
    private static final long serialVersionUID = 1L;

    @Inject
    protected FacesContext facesContext;

    ...
}
Run Code Online (Sandbox Code Playgroud)

根据

https://arjan-tijms.omnifaces.org/p/jsf-23.html#1316

这应该与2.3一起工作...

部署到Wildfly 14时,结果是:

13:02:33,516 INFO  [org.hibernate.dialect.Dialect] (ServerService Thread Pool -- 72) HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect
13:02:33,563 INFO  [org.hibernate.envers.boot.internal.EnversServiceImpl] (ServerService Thread Pool -- 72) Envers integration enabled? : true
13:02:34,344 INFO  [org.hibernate.hql.internal.QueryTranslatorFactoryInitiator] (ServerService Thread Pool -- 72) HHH000397: Using ASTQueryTranslatorFactory
13:02:34,531 WARN  [org.jboss.weld.Bootstrap] (MSC service thread 1-1) WELD-000146: BeforeBeanDiscovery.addAnnotatedType(AnnotatedType<?>) used for class …
Run Code Online (Sandbox Code Playgroud)

faces-config cdi facescontext wildfly jsf-2.3

2
推荐指数
1
解决办法
1635
查看次数

JPA/Hibernate:当ORM(Hibernate)没有得到所有JPA映射时,有什么用?

在过去的几个月/周内,我在Hibernate和JPA映射方面做了很多工作.我的数据库使用复合主键,我已经报告了大约10到15个Hibernate和5-10个EclipseLink错误.在某些应该起作用的星座中,Hibernate尤其荒谬.(我有专家和JPA书籍作者检查过的代码)

最大的问题是:

当ORM没有得到所有 JPA映射时,有什么用?

Hibernate提供了太多东西,缓存etcetc.我想知道谁在乎开发人员甚至无法创建一个有效的元数据模型......这一切都毫无意义.那么,当它没有使所有 JPA映射正确时,ORM有什么用?

java mapping orm hibernate jpa

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

术语:实例变量的单字Java术语?

我正在寻找在类(非静态)中声明的实例变量的替代OO/Java术语,或者更具体地说,在使用JPA注释"装饰"的Java类中:

@Entity
@Table(name = "Departments")
@IdClass(value = DepartmentId.class)
public class Department implements Serializable
{
    @Id
    @Column(name = "company_id", insertable = false, updatable = false)
    private Integer companyId;

    @Id
    @Column(name = "internal_code")
    private String internalCode;

    @Column(name = "name")
    private String name;

    @ManyToOne
    @JoinColumn(name = "company_id", referencedColumnName = "id")
    private Company company;

    ...
}
Run Code Online (Sandbox Code Playgroud)

他们被称为财产吗?属性?会员?场?只是参考?除了实例变量之外什么都没有?

如果有的话,我想听一个单词的用语."实例变量"对于我目前正在做的事情来说太长了.

java jpa terminology instance-variables javabeans

0
推荐指数
1
解决办法
276
查看次数

JPA/Hibernate:java.sql.SQLException:JDBC调用中的参数无效:参数索引超出范围

我在两个其他表之间使用Hibernate 4和一个简单的"连接表".以下是JPA 1.0兼容实体:

@Entity
@Table(name = "Companies")
public class Company
{
    @Id
    @Column
    private Integer id;

    @Column
    private String name;

    ...
}
Run Code Online (Sandbox Code Playgroud)

@Entity
@Table(name = "PQs")
public class PQ implements Serializable
{
    @Id
    @Column
    private Integer id;

    @Column
    private String name;

    ...
}
Run Code Online (Sandbox Code Playgroud)

正如您可以看到两个类似的表,只是一个简单的ID加名称.现在互连实体:

@Entity
@Table(name = "Partnerships")
@IdClass(value = PartnershipId.class)
public class Partnership implements Serializable
{
    @Id
    @Column(name = "pq_id", insertable = false, updatable = false)
    private Integer pqId;

    @Id
    @Column(name = "company_id", insertable = false, updatable = …
Run Code Online (Sandbox Code Playgroud)

java mapping hibernate jpa readonly

0
推荐指数
1
解决办法
7179
查看次数