<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
-->

<html>
    <head>
        <title>在 EclipseLink 中使用 JPA 支持 - NetBeans IDE 6.x 截屏视频</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
        <meta name="description" content="A video tutorial on how to handle Java Persistence
              API support using EclipseLink in the NetBeans IDE.">
        <link rel="stylesheet" type="text/css" href="../../../netbeans.css">
    </head>
    <body>

        <h1>在 EclipseLink 中使用 JPA 支持</h1>

        <table>
            <tr>
                <td class="valign-top">

                    <p>该视频教程演示了如何在 NetBeans IDE 中使用 EclipseLink 处理 Java 持久性 API 支持。该演示分为两个部分：第一部分显示如何通过编辑器提示和重构来使用 EclipseLink 支持。第二部分介绍如何通过数据库创建实体类。</p>

                    <p>作者：Troy Giunipero<br> 播放时长：12:23</p>

                    <p><a href="http://bits.netbeans.org/media/eclipselink-demo.flv">下载</a> [44.3MB]</p>

                    <div class="feedback-box">
                        <a href="/about/contact_form.html?to=3&amp;subject=Feedback: JPA EclipseLink Screencast">发送有关此教程的反馈意见</a>
                    </div>
                    <br style="clear:both;">
                </td>

                <td>
                  <div id="player">
                      <div id="flashContent"></div>
                  </div>
                </td>
            </tr>
        </table>

        <script src="/images_www/js/mediaplayer-5.2/swfobject.js" type="text/javascript"></script>
        <script type="text/javascript">
          $(document).ready(function() {
            showMedia('eclipselink-demo.flv');
          } );

          function showMedia(file) {
            var targetFile='http://bits.netbeans.org/media/'+file;
            var s1 = new SWFObject('/images_www/js/mediaplayer-5.2/player.swf','player','470','376','9');
            s1.addParam('allowfullscreen','true');
            s1.addParam('allowscriptaccess','always');
            s1.addParam('flashvars','file='+targetFile+'&autostart=true');
            s1.write('flashContent');
          }
        </script>
    </body>
</html>
