如何为JPA中的给定实体持久化OneToOne变量



我有两个实体:Student和Address

我在Student类中添加了一个OneTeOne注释,并且在JSP页面中,我可以使用${stud.address获取给定学生的地址。

它的工作,但问题是:我必须坚持一个新的学生通过phpMyAdmin,而不是通过JSP页面。

那么我应该在JSP代码和servlet代码中添加什么来添加/持久化一个具有自己的数据地址数据的新学生呢?

(i new a newbe in Java web)

这是netbeans源码项目的链接

据我所知,phpMyAdmin只是一个基于PHP的MySQL管理实用程序。因此,简单的答案是,当您在Java环境中工作时,您不必也不应该将您的实体持久化。

考虑为你的项目声明一个持久化单元,如果你还没有的话。根据您的环境,还可以了解如何设置连接到MySQL实例的数据源,然后使用EntityManager API来执行持久化操作。

我建议先从JPA教程开始。特别是关于持久化单元和应用程序管理与容器管理的实体管理器的部分。

对不起,我认为没有更容易的方法给你指正确的方向,我怀疑有没有更短的路线。

我看了看你的dropbox内容,你似乎大多是IDE生成的代码,应该很好,功能齐全。您的持久单元声明可能就是问题所在。

<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
    <persistence-unit name="CRUDWebApplicationPU" transaction-type="JTA">
        <jta-data-source>jdbc/studentDB2</jta-data-source>
        <exclude-unlisted-classes>false</exclude-unlisted-classes>
        <properties/>
    </persistence-unit>
</persistence>

<jta-data-source>jdbc/studentDB2</jta-data-source>行- jdbc/studentDB2是部署环境中java.sql.Datasource的有效JNDI名称吗?基本上,您必须在连接到数据库的部署环境中配置一个数据源(注意,那里的配置是特定于环境的)。然后你的代码就可以正常工作了。为了得到更好的答案,你必须更具体。

最新更新