玩依赖独立Hibernate项目的框架?

时间:2014-03-02 22:42:34

标签: hibernate playframework playframework-2.2

我目前正在学习Play框架,但很快遇到了一些麻烦。

我有一个独立的Java项目,它使用Hibernate来持久化并从MySQL数据库中获取数据。这个项目充满了DTO和DAO。

我认为在我的新Play框架项目中引用Hibernate项目是个好主意,因此可以通过它来利用不同的DAO和DTO。

所有东西都在Eclipse中编译,但是当在浏览器中运行我的Play应用程序时,我收到一个错误,即无法找到包com.path.to.hibernate.project.package。

是否有一种秘密的方式来引用Play框架中的其他项目,或者我只是做错了?我有点像将Hibernate内容与Play框架内容分开的想法。

如果你认为我应该对此采取不同的方法,我会全力以赴。

感谢。

修改

build.sbt(相当于Build.scala?)

name := "klepp_rc_play"

version := "1.0-SNAPSHOT"

libraryDependencies ++= Seq(
  javaJdbc,
  javaEbean,
  cache,
  "mysql" % "mysql-connector-java" % "5.1.29"
)     

play.Project.playJavaSettings

application.conf

...
db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost/play"
db.default.user=****
db.default.password=****

ebean.default="models.*"
...

CONF / 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"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence     http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
    version="2.0">

    <persistence-unit name="defaultPersistenceUnit"
        transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <non-jta-data-source>DefaultDS</non-jta-data-source>
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
            <property name="hibernate.hbm2ddl.auto" value="create" />
        </properties>
    </persistence-unit>

</persistence>

1 个答案:

答案 0 :(得分:1)

你的问题涉及sbt的一些知识,我甚至不会说它只是基本的东西。理想情况下,您希望使用sbt构建独立项目,然后从播放应用程序中引用。

以下是我作为开始时所做的事情,然后随着sbt的进展,您可以对此进行改进。

A,以最舒适的方式构建您的独立项目。这甚至可能意味着您只需从eclipse导出jar文件(是的,有些人会认为这是魔鬼的行为,但我们只是想启动它)。但要注意它的所有依赖!然后取出jar并将其放入播放应用程序的lib文件夹中(如果没有这样的文件夹,请创建一个)。它将自动放在类路径上。现在,您也可以将依赖项放入此文件夹,或将其列在build.sbt

B,如果您使用maven构建应用程序,则可以像往常一样在build.sbt中引用您的项目(“groupId”%“artifactId”%“version”)。但是您应该将本地存储库添加到build.sbt。以下是如何操作:SBT doesn't find file in local maven repository although it's there

C,将您的独立项目转换为sbt项目,然后您可以轻松管理其构建过程。

现在,如果你想在整个过程中修改你的独立项目,那么选择 C 可能是值得的。否则,如果您只是想开始了解Play Framework,请使用 A B 。但你也需要了解sbt