- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
本文整理了Java中org.eclipse.persistence.oxm.mappings.XMLTransformationMapping
类的一些代码示例,展示了XMLTransformationMapping
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。XMLTransformationMapping
类的具体详情如下:
包路径:org.eclipse.persistence.oxm.mappings.XMLTransformationMapping
类名称:XMLTransformationMapping
[英]Transformation XML mappings are used to create a custom mapping where one or more XML nodes can be used to create the object to be stored in a Java class's attribute. To handle the custom requirements at marshal (write) and unmarshall (read) time, a transformation mapping takes instances of org.eclipse.persistence.mappings.transformers (such as AttributeTransformer and FieldTransformer), providing a non-intrusive solution that avoids the need for domain objects to implement any 'special' interfaces.
Setting the XPath: TopLink XML mappings make use of XPath statements to find the relevant data in an XML document. The XPath statement is relative to the context node specified in the descriptor. The XPath may contain node type, path, and positional information. The XPath is specified on the field transformer that is set on the mapping. The XPath is set as the first parameter of the addFieldTransformer
method.
The following XPath statements may be used to specify the location of XML data relating to an object's name attribute:
XPathDescription@nameThe "@" character indicates that the node is an attribute.text()"text()" indicates that the node is a text node. In this case the name value in the text node belongs to the context node.full-name/text()The name information is stored in the text node of the full-name element.personal-info/name/text()The XPath statement may be used to specify any valid path.name[2]/text()The XPath statement may contain positional information. In this case the name information is stored in the text node of the second occurrence of the name element.
Mapping a transformation: A transformer can be configured to perform both the XML instance-to-Java attribute transformation at unmarshall time (via attribute transformer) and the Java attribute-to-XML instance transformation at marshal time (via field transformer).
XML Schema<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="employee" type="employee-type"/> <xsd:complexType name="employee-type"> <xsd:sequence> <xsd:element name="name" type="xsd:string"/> <xsd:element name="normal-hours" type="normal-hours-type"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="normal-hours-type"> <xsd:sequence> <xsd:element name="start-time" type="xsd:string"/> <xsd:element name="end-time" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </xsd:schema>
Code SampleXMLTransformationMapping mapping = new XMLTransformationMapping(); mapping.setAttributeName("normalHours"); mapping.setAttributeTransformerClassName("org.eclipse.persistence.testing.oxm.mappings.transformation.NormalHoursAttributeTransformer"); mapping.addFieldTransformer("normal-hours/start-time/text()", new StartTimeTransformer()); mapping.addFieldTransformer("normal-hours/end-time/text()", new EndTimeTransformer()");
More Information: For more information about using the XML Transformation Mapping, see the "Understanding XML Mappings" chapter of the Oracle TopLink Developer's Guide.
[中]转换XML映射用于创建自定义映射,其中一个或多个XML节点可用于创建要存储在Java类属性中的对象。为了在封送(写)和解封送(读)时处理定制需求,转换映射需要org的实例。日食坚持不懈映射。transformers(如AttributeTransformer和FieldTransformer),提供非侵入性解决方案,避免了域对象实现任何“特殊”接口的需要。
设置XPath:TopLink XML映射使用XPath语句在XML文档中查找相关数据。XPath语句与描述符中指定的上下文节点相关。XPath可能包含节点类型、路径和位置信息。XPath是在映射上设置的字段转换器上指定的。XPath被设置为addFieldTransformer
方法的第一个参数。
以下XPath语句可用于指定与对象名称属性相关的XML数据的位置:
XPathDescription@nameThe“@”字符表示节点是一个属性。text()“text()”表示该节点是文本节点。在这种情况下,文本节点中的名称值属于上下文节点。全名/text()全名信息存储在全名元素的文本节点中。personal info/name/text()XPath语句可用于指定任何有效路径。name[2]/text()XPath语句可能包含位置信息。在这种情况下,名称信息存储在名称元素第二次出现的文本节点中。
映射转换:可以将转换器配置为在解组时(通过属性转换器)执行XML实例到Java属性的转换,并在封送时(通过字段转换器)执行Java属性到XML实例的转换。
XML模式<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="employee" type="employee-type"/> <xsd:complexType name="employee-type"> <xsd:sequence> <xsd:element name="name" type="xsd:string"/> <xsd:element name="normal-hours" type="normal-hours-type"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="normal-hours-type"> <xsd:sequence> <xsd:element name="start-time" type="xsd:string"/> <xsd:element name="end-time" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </xsd:schema>
代码示例XMLTransformationMapping mapping = new XMLTransformationMapping(); mapping.setAttributeName("normalHours"); mapping.setAttributeTransformerClassName("org.eclipse.persistence.testing.oxm.mappings.transformation.NormalHoursAttributeTransformer"); mapping.addFieldTransformer("normal-hours/start-time/text()", new StartTimeTransformer()); mapping.addFieldTransformer("normal-hours/end-time/text()", new EndTimeTransformer()");
更多信息:有关使用XML转换映射的更多信息,请参阅《Oracle TopLink开发人员指南》的“理解XML映射”一章。
代码示例来源:origin: org.eclipse.persistence/org.eclipse.persistence.dbws
protected XMLDescriptor buildProcedureOutputArgumentDescriptor() {
XMLDescriptor descriptor = buildProcedureArgumentDescriptor();
descriptor.setJavaClass(ProcedureOutputArgument.class);
XMLTransformationMapping resultType = new XMLTransformationMapping();
resultType.setAttributeName("resultType");
QNameTransformer qNameTransformer = new QNameTransformer("type/text()");
resultType.addFieldTransformer("type/text()", qNameTransformer);
resultType.setAttributeTransformer(qNameTransformer);
descriptor.addMapping(resultType);
return descriptor;
}
代码示例来源:origin: org.eclipse.persistence/com.springsource.org.eclipse.persistence
public void addFieldTransformation(String fieldName, String methodName) {
this.addFieldTransformation(new XMLField(fieldName), methodName);
}
public void writeSingleValue(Object value, Object parent, XMLRecord row, AbstractSession session) {
代码示例来源:origin: org.eclipse.persistence/org.eclipse.persistence.core
public void addFieldTransformerClassName(String fieldName, String className) {
this.addFieldTransformerClassName(new XMLField(fieldName), className);
}
代码示例来源:origin: org.eclipse.persistence/org.eclipse.persistence.core
public void preInitialize(AbstractSession session) throws DescriptorException {
getAttributeAccessor().setIsWriteOnly(this.isWriteOnly());
getAttributeAccessor().setIsReadOnly(this.isReadOnly());
super.preInitialize(session);
}
代码示例来源:origin: com.haulmont.thirdparty/eclipselink
XMLTransformationMapping versionMapping = new XMLTransformationMapping();
versionMapping.addFieldTransformer("@version", getConstantTransformerForProjectVersionMapping());
descriptor.addMapping(versionMapping);
代码示例来源:origin: org.eclipse.persistence/com.springsource.org.eclipse.persistence
public void addFieldTransformer(String fieldName, FieldTransformer transformer) {
this.addFieldTransformer(new XMLField(fieldName), transformer);
}
代码示例来源:origin: com.haulmont.thirdparty/eclipselink
TransformationMapping mapping = new XMLTransformationMapping();
if (property.isMethodProperty()) {
if (property.getGetMethodName() == null) {
代码示例来源:origin: com.haulmont.thirdparty/eclipselink
public void writeSingleValue(Object value, Object parent, XMLRecord row, AbstractSession session) {
this.writeFromObjectIntoRow(parent, row, session, WriteType.UNDEFINED);
}
代码示例来源:origin: org.eclipse.persistence/org.eclipse.persistence.core
XMLTransformationMapping versionMapping = new XMLTransformationMapping();
versionMapping.addFieldTransformer("@version", getConstantTransformerForProjectVersionMapping());
descriptor.addMapping(versionMapping);
代码示例来源:origin: com.haulmont.thirdparty/eclipselink
public void preInitialize(AbstractSession session) throws DescriptorException {
getAttributeAccessor().setIsWriteOnly(this.isWriteOnly());
getAttributeAccessor().setIsReadOnly(this.isReadOnly());
super.preInitialize(session);
}
代码示例来源:origin: org.eclipse.persistence/org.eclipse.persistence.core
public void addFieldTransformer(String fieldName, FieldTransformer transformer) {
this.addFieldTransformer(new XMLField(fieldName), transformer);
}
代码示例来源:origin: org.eclipse.persistence/org.eclipse.persistence.moxy
TransformationMapping mapping = new XMLTransformationMapping();
if (property.isMethodProperty()) {
if (property.getGetMethodName() == null) {
代码示例来源:origin: org.eclipse.persistence/org.eclipse.persistence.core
public void writeSingleValue(Object value, Object parent, XMLRecord row, AbstractSession session) {
this.writeFromObjectIntoRow(parent, row, session, WriteType.UNDEFINED);
}
代码示例来源:origin: com.haulmont.thirdparty/eclipselink
protected XMLDescriptor buildProcedureOutputArgumentDescriptor() {
XMLDescriptor descriptor = buildProcedureArgumentDescriptor();
descriptor.setJavaClass(ProcedureOutputArgument.class);
XMLTransformationMapping resultType = new XMLTransformationMapping();
resultType.setAttributeName("resultType");
QNameTransformer qNameTransformer = new QNameTransformer("type/text()");
resultType.addFieldTransformer("type/text()", qNameTransformer);
resultType.setAttributeTransformer(qNameTransformer);
descriptor.addMapping(resultType);
return descriptor;
}
代码示例来源:origin: org.eclipse.persistence/com.springsource.org.eclipse.persistence
XMLTransformationMapping versionMapping = new XMLTransformationMapping();
versionMapping.addFieldTransformer("@version", getConstantTransformerForProjectVersionMapping());
descriptor.addMapping(versionMapping);
代码示例来源:origin: org.eclipse.persistence/com.springsource.org.eclipse.persistence
public void preInitialize(AbstractSession session) throws DescriptorException {
getAttributeAccessor().setIsWriteOnly(this.isWriteOnly());
getAttributeAccessor().setIsReadOnly(this.isReadOnly());
super.preInitialize(session);
}
}
代码示例来源:origin: com.haulmont.thirdparty/eclipselink
public void addFieldTransformer(String fieldName, FieldTransformer transformer) {
this.addFieldTransformer(new XMLField(fieldName), transformer);
}
代码示例来源:origin: org.eclipse.persistence/org.eclipse.persistence.core
public void addFieldTransformation(String fieldName, String methodName) {
this.addFieldTransformation(new XMLField(fieldName), methodName);
}
public void writeSingleValue(Object value, Object parent, XMLRecord row, AbstractSession session) {
代码示例来源:origin: org.eclipse.persistence/com.springsource.org.eclipse.persistence
public void writeSingleValue(Object value, Object parent, XMLRecord row, AbstractSession session) {
this.writeFromObjectIntoRow(parent, row, session);
}
代码示例来源:origin: org.eclipse.persistence/com.springsource.org.eclipse.persistence
public void addFieldTransformerClassName(String fieldName, String className) {
this.addFieldTransformerClassName(new XMLField(fieldName), className);
}
在 Spring-MVC 应用程序中,我尝试使用 validator 。我将注释 @NotEmpty 和 @Email 放在我的实体之一上,当我尝试验证它时,出现此错误: java.lang.NoSu
网络是我硕士学位的最后一门类(class)。我确实有一个关于如何计算非持久、持久和持久流水线的 http 往返时间的问题。 在花了无数小时阅读有关该问题、从其他大学下载笔记甚至搜索 youtube 视
让我们考虑典型的 订购 和 订单商品 例子。假设 订单商品 是 的一部分订购 聚合,只能通过订单添加。所以,添加一个新的 订单商品 到 订购,我们必须通过 Repository 加载整个 Aggreg
// lookup existing user & set a currently null child entity (ContactInfo) user.setContactInfo(contac
我正在尝试关注 this tutorial .我想我不是从使用可下载项目开始,而是从我之前做过的一个简单的“spring MVC - Maven - eclipse”项目开始。这个项目运行良好。 因此
我正在使用打开 Kubernetes 选项的 docker 应用程序运行 mac OSX Catalina。我使用以下 yaml 和命令创建了一个 PersistentVolume。 apiVersi
假设我有一个类 Employee和一个类Company其中包含 Employee 的 LinkedList对象,我想编写一个添加 Employee 的方法到特定的数据库Company 。我创建了一个新
我实际上正在将我们应用程序的所有组件更新到最新版本。因此,除其他外,我将从 eclipselink-2.5.0 升级到 eclipselink-2.7.3,并从 Tomcat 7 升级到 TomEE。
我试图遵循《用GlassFish 3开始Java EE 6平台》一书第2章中的示例。我正在Windows中使用cmd中的EclipseLink,Derby和Maven。我真的不知道这一点,将不胜感激!
我只是看看ClassGuard (虽然我知道一些 objection )。 但是我得到了 javax.persistence.PersistenceException: [PersistenceUni
我的印象是,如果我们使用持久字段,就不需要 getter 方法,因为实体管理器直接引用实例变量。但是,当我从实体中删除 getter 和 setter 方法以具有持久字段时,未从数据库中检索到相应实例
我正在 Eclipse 中使用 Servlet、JPA、EJB 和 JBoss 进行项目。正如您在我的主题标题中看到的,我的 persistence.xml 文件有错误,但我不知道是哪个:
我已经尝试了一个星期或更长时间来让我的状态在 react native Android 应用程序中持续存在,但在重新水化后状态始终具有初始值。如果我使用 Redux devtools 检查 ASync
什么时候应该坚持,什么时候应该补充水分?命名约定非常困惑,因为作者几乎没有提到它们在 redux-persist 的上下文中的含义。 . 最佳答案 在不真正了解图书馆的情况下: persist = 将
我正在尝试按照老师文档中提供的信息设置一个简单的 jpa 2.0 项目。我已经处理这个问题好几个小时了,但无论我做什么,当我尝试创建 EntityManagerFactory 时,我总是遇到这个异常:
我有一个 Maven 项目,我将其转换为现在可与 Maven 一起使用的 JPA 项目。我的persistence.xml如下: My Persistence Unit
我正在使用 Netbeans 6.8 并构建简单的 Maven Web 应用程序项目。 为持久实体创建实体和主文件 [也创建持久单元] 并使用 EclipsLink。 但是当我运行主文件时出现这个错误
我是 Kubernetes 的新手,我很难理解 Kubernetes 中持久存储背后的整个想法。 这就足够了吗,或者我必须创建持久卷,如果我只部署这两个对象而不创建 PV 会发生什么情况? 存储应该在
我正在尝试使用 JPA 为我目前参与的 Java-EE 项目设置持久性,并且我遇到了许多配置问题。目前,我已经在 persistence.xml 中定义了一个 RESOURCE_LOCAL 持久性单元
Akka 持久性查询通过提供一个通用的基于异步流的查询接口(interface)来补充 Persistence,各种日志插件可以实现该接口(interface)以公开它们的查询功能。 这是来自 akk
我是一名优秀的程序员,十分优秀!