openjpa one to many 小例子

1.在D盘创建openjpademo04目录,进入此目录创建META-INF目录,

进如META-INF目录新建 persistence.xml文件,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
    <persistence xmlns="http://java.sun.com/xml/ns/persistence"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            version="1.0">
            <persistence-unit name="mysql" transaction-type="RESOURCE_LOCAL">
                <provider>
                    org.apache.openjpa.persistence.PersistenceProviderImpl
                </provider>
                <class>org.dean.openjpa.entity.Magazine</class>
                <class>org.dean.openjpa.entity.Publisher</class>
                <properties>
                    <property name="openjpa.ConnectionURL"
                        value="jdbc:mysql://localhost/test"/>
                    <property name="openjpa.ConnectionDriverName"
                            value="com.mysql.jdbc.Driver"/>
                    <property name="openjpa.ConnectionUserName"
                                value="root"/>
                    <property name="openjpa.ConnectionPassword"
                                value="root"/>
                </properties>
        </persistence-unit>
    </persistence>

=====================================================================

2.进入d:\openjpademo04目录下一次创建Magazine.java, Publisher.java, Main.java

一个Publisher可以有多个Magazine(one to many)

Magazine.java代码如下:

package org.dean.openjpa.entity;

import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.JoinColumn;

@Entity  
public class Magazine {  
    @Id  
    private int magazineId;  

    public void setMagazineId(int magazineId){
        this.magazineId = magazineId;
    }
    public int getMagazineId(){
        return this.magazineId;
    }

Publisher代码如下:

package org.dean.openjpa.entity;

import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import java.util.List;
import javax.persistence.*;

@Entity  
public class Publisher {  
    @Id  
    private int publisherId;  
      
    @OneToMany  
        @JoinTable(name="PublisherMagazine",  
            joinColumns=@JoinColumn(name="publisherId", referencedColumnName="publisherId"),  
            inverseJoinColumns=@JoinColumn(name="magazineId", referencedColumnName="magazineId"))  
    private List<Magazine> magazines;  

    public void setPublisherId(int publisherId){
        this.publisherId = publisherId;
    }

    public int getPublisherId(){
        return this.publisherId;
    }

    public void setMagazines(List<Magazine> magazines){
        this.magazines = magazines;
    }
    public List<Magazine> getMagazines(){
        return this.magazines;
    }
}

Main.java代码如下:

package org.dean.openjpa.test;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import org.dean.openjpa.entity.*;
import javax.persistence.*;
import java.util.*;

public class Main{
    public static void main(String[] args){
        Magazine mag1 = new Magazine();
        Magazine mag2 = new Magazine();
        Magazine mag3 = new Magazine();  
        Magazine mag4 = new Magazine();  
        Magazine mag5 = new Magazine();   
        Publisher pub = new Publisher();
        pub.setPublisherId(1);
        mag1.setMagazineId(1);
        mag2.setMagazineId(2);
        mag3.setMagazineId(3);
        mag4.setMagazineId(4);
        mag5.setMagazineId(5);
        List<Magazine> mags = new ArrayList<Magazine>();
        mags.add(mag1);
        mags.add(mag2);
        mags.add(mag3);
        mags.add(mag4);
        mags.add(mag5);
        pub.setMagazines(mags);
        EntityManagerFactory factory = Persistence
        .createEntityManagerFactory("mysql");
        EntityManager em = factory.createEntityManager();
        em.getTransaction().begin();
        em.persist(mag1);
        em.persist(mag2);
        em.persist(mag3);
        em.persist(mag4);
        em.persist(mag5);
        em.persist(pub);
        em.getTransaction().commit();
        em.close();
        factory.close();
    }
}

=======================================================================

3、编译运行步骤如下:

cmd 进入d盘 openjpademo04目录下:

set classpath=.;D:\openjpa\lib\commons-beanutils-1.8.3.jar;D:\openjpa\lib\commons-collections-3.2.1.jar;D:\openjpa\lib\commons-dbcp-1.4.jar;D:\openjpa\lib\geronimo-jms_1.1_spec-1.1.1.jar;D:\openjpa\lib\geronimo-jpa_2.0_spec-1.1.jar;D:\openjpa\lib\geronimo-jta_1.1_spec-1.1.1.jar;D:\openjpa\lib\geronimo-validation_1.0_spec-1.1.jar;D:\openjpa\lib\org.apache.bval.bundle-0.3-incubating.jar;D:\openjpa\lib\serp-1.14.1.jar;D:\openjpa\openjpa-all-2.3.0.jar;D:\openjpa\openjpa-2.3.0.jar;D:\openjpademo\mysql-connector-java-5.1.7-bin.jar;

javac -d . Magazine.java

javac -d . Publisher.java

java org.apache.openjpa.enhance.PCEnhancer org.dean.openjpa.entity.Magazine

java org.apache.openjpa.enhance.PCEnhancer org.dean.openjpa.entity.Publisher

java org.apache.openjpa.jdbc.meta.MappingTool org.dean.openjpa.entity.Magazine

java org.apache.openjpa.jdbc.meta.MappingTool org.dean.openjpa.entity.Publisher

javac -d . Main.java

java org.dean.openjpa.test.Main


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值