<?xml version="1.0" encoding="UTF-8"?>
<!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at
    
     http://www.apache.org/licenses/LICENSE-2.0
    
    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
-->
<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://xmlns.jcp.org/xml/ns/persistence/orm_2_0.xsd"
    version="2.0">

    <package>org.apache.aries.jpa.container.itest.entities.mapped</package>
    <entity class="org.apache.aries.jpa.container.itest.entities.mapped.Truck" name="Truck">
        <named-query name="GET_DEVELOPER">
            <query>SELECT DISTINCT record FROM Car record ORDER BY record.engineSize</query>
        </named-query>
        <attributes>
            <id name="numberPlate">
                <column name="PLATE" length="255" />
            </id>
            <basic name="colour">
                <column name="COLOUR" length="255" />
            </basic>
            <basic name="engineSize">
                <column name="ENGINE_SIZE" />
            </basic>
            <basic name="maxLoad">
                <column name="MAX_LOAD" length="255" />
            </basic>
        </attributes>
    </entity>
</entity-mappings>