小编jpv*_*vee的帖子

在Spring Data JPA中进行审计和@Embedded

我遇到了JPA审核和@Embedded会员的问题.请考虑以下示例场景:

我在Oracle DB中设置了一个测试表:

CREATE TABLE AUDIT_TEST (
  ID            NUMBER(38)   NOT NULL PRIMARY KEY,
  CREATION_DATE TIMESTAMP(6) DEFAULT SYSTIMESTAMP NOT NULL
);
Run Code Online (Sandbox Code Playgroud)

@Entity用审计定义了一个JPA :

@Entity
@EntityListeners(AuditingEntityListener.class)
@Table(name = "AUDIT_TEST")
public class AuditTest {

  private Long id;
  private LocalDateTime creationDate;

  @Id
  @Column(name = "ID")
  public Long getId() { return id; }

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

  @CreatedDate
  @Column(name = "CREATION_DATE")
  public LocalDateTime getCreationDate() { return creationDate; }

  public void setCreationDate(LocalDateTime creationDate) {
    this.creationDate = creationDate; …
Run Code Online (Sandbox Code Playgroud)

spring jpa spring-data-jpa

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

在 XSD 中嵌套来自不同命名空间的 XML 元素

假设我有一个命名空间元素的 XML 架构定义,我希望将其用作第二个命名空间中 XML 元素的子元素。

举个例子,假设我们有文件foo.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="urn:foo-ns" targetNamespace="urn:foo-ns"
           xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

  <xs:element name="foo" type="fooType"/>

  <xs:complexType name="fooType">
    <xs:attribute name="id" use="required"/>
  </xs:complexType>

</xs:schema>
Run Code Online (Sandbox Code Playgroud)

以及文件bar.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="urn:bar-ns"
           targetNamespace="urn:bar-ns"
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:foo-ns="urn:foo-ns"
           elementFormDefault="qualified">

  <xs:import namespace="urn:foo-ns" schemaLocation="foo.xsd"/>

  <xs:element name="bar" type="barType"/>

  <xs:complexType name="barType">
    <xs:sequence minOccurs="0" maxOccurs="unbounded">
      <xs:element name="foo" type="foo-ns:fooType"/>
    </xs:sequence>
    <xs:attribute name="name" use="required"/>
  </xs:complexType>

</xs:schema>
Run Code Online (Sandbox Code Playgroud)

那么我期望以下文件bar.xml是有效的 XML:

<?xml version="1.0" encoding="UTF-8"?>
<bar name="myBar" xmlns="urn:bar-ns">
  <foo id="myFoo" xmlns="urn:foo-ns"/>
</bar>
Run Code Online (Sandbox Code Playgroud)

然而,我的 XML 验证器抱怨 foo 元素的命名空间声明;相反,它坚持以下文件有效:

<?xml version="1.0" encoding="UTF-8"?> …
Run Code Online (Sandbox Code Playgroud)

xml xsd xml-namespaces xml-validation xsd-validation

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

从Build Pipeline推送到本地Azure DevOps Git

精简版

有人能告诉我如何在Azure DevOps构建管道中设置"命令行脚本"任务,该管道将更改推送到本地Git存储库(事实上,管道所基于的Git存储库)?

无论我尝试什么,我的脚本总是在打印后超时Pushing commits to git.

更长的版本

我们正在将现有的Java/Maven项目从Jenkins构建服务器迁移到Azure DevOps构建环境,我正在尝试设置一个模仿Jenkins"Release Staging"功能的构建管道.

我的第一次尝试是直接在签出的源上调用Maven发布插件.这涉及到几个障碍,其中大部分都是我能够以某种方式克服的:

  1. 标准的Azure DevOps git环境没有设置所需的配置值"user.email"和"user.name"; 这可以通过git config在推送之前调用单独的"命令行脚本"任务来解决.
  2. Azure DevOps以"分离的HEAD状态"检出源 - 为解决此问题,安装脚本任务也会调用git checkout master.

设置完成后,我的Maven调用脚本会运行到释放插件尝试推送到Git的位置; 读取日志文件中的相应行

[INFO] Executing: cmd.exe /X /C "git push https://xxx.visualstudio.com/YYY/_git/zzz refs/heads/master:refs/heads/master"
[INFO] Working directory: D:\a\1\s</code>
Run Code Online (Sandbox Code Playgroud)

之后,在超时发生之前没有任何事情发生(至少没有记录任何内容):

##[error]The operation was canceled.
##[section]Finishing: Maven pom.xml
Run Code Online (Sandbox Code Playgroud)

为了找出导致这个问题的原因,我尝试了一些事情,其中​​包括:

  • 禁用maven调用并git push直接从脚本调用,
  • 注册一个"商店"类型的Git凭证助手(假设一个身份验证问题负责超时),

但没有成功.我现在已经没有想法如何git push接到工作电话了 - 这里是否有人可以帮助我?

PS:你可能会说,就Azure DevOps而言,我是一个新手,所以我肯定不知道该系统的所有技巧和功能.特别是,我不知道是否有任何东西提供与Maven发布插件相同的功能.我们确实使用Azure DevOps包管理,但我们希望为快照和发布版本(Nexus等工具的方式)保留单独的订阅源,因此我们必须有一个机制来自动推进版本号,签出和返回构建包装模块并将其发布到发布订阅源.

如果有人可以提出另一种方法来实现这一点,我也愿意接受建议.

git maven maven-release-plugin azure-devops azure-pipelines

6
推荐指数
3
解决办法
3844
查看次数