错误:RuntimeException:没有为名称配置JPA EntityManagerFactory [默认] [英] Error : RuntimeException: No JPA EntityManagerFactory configured for name [default]
问题描述
当我尝试在数据库中创建操作搜索时,出现此错误:[RuntimeException:没有为名称[default]配置JPA EntityManagerFactory].
i got this error : [RuntimeException: No JPA EntityManagerFactory configured for name [default]] when i try create action search in database.
模型--- user.java
MODELS --- user.java
@Entity
public class User extends Model{
@Required
public String MaKH;
@Id
public Integer Id;
@MinLength(6)
public String Ten;
public String Diachi;
public Integer SDT;
public User() {}
public User(String MaKH,String Ten,String Diachi,Integer SDT,Integer Id){
this.Diachi=Diachi;
this.MaKH=MaKH;
this.Ten=Ten;
this.SDT=SDT;
this.Id=Id;
}
// Find method static for request
public static Finder<Long,User> find = new Finder(Long.class,User.class);
public static List<User> searchByName(String name){
return find.where().like("Ten", "%"+name+"%").findList();
}
}
CONTROLLER --- Application.java
CONTROLLER --- Application.java
公共类应用程序扩展了控制器{
public class Application extends Controller {
public static Result index() {
return ok(index.render());
}
@Transactional
public static Result search() {
DynamicForm form = form().bindFromRequest();
String name = form.get("Ten");
User.searchByName(name);
return ok(result.render());
} }
路线
GET / controllers.Application.index()
POST /search controllers.Application.search()
Application.conf
Application.conf
db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost/search"
db.default.user=root
db.default.password=123456
db.default.jndiName=DefaultDS
ebean.default="models.*"
请帮助我解决它:D
推荐答案
曾在几个项目中工作.在application.conf中添加
Worked for couple of projects. In application.conf add
jpa.default = defaultPersistenceUnit
jpa.default=defaultPersistenceUnit
喜欢
...
# Database configuration
# ~~~~~
# You can declare as many datasources as you want.
# By convention, the default datasource is named `default`
#
db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost:3305/dbname"
db.default.user=root
db.default.password=""
#db.default.maxConnectionsPerPartition=5
#
# You can expose this datasource via JNDI if needed (Useful for JPA)
db.default.jndiName=DefaultDS
jpa.default=defaultPersistenceUnit
# Evolutions...
此外,在播放2.2.3的sbt中,我添加了
Also, in sbt for play 2.2.3 I added
libraryDependencies ++= Seq(
javaJdbc,
javaJpa,
cache
)
play.Project.playJavaSettings
val appDependencies = Seq(
javaJdbc,
javaJpa,
"org.hibernate" % "hibernate-entitymanager" % "4.3.5.Final",
"mysql" % "mysql-connector-java" % "5.1.29"
)
ebeanEnabled in Global := false
也许如果使用persistence.xml以及类和表以及Java注释一切正常,然后您清理所有内容并重新启动并在所有几乎没有错误的地方添加@Transactional. 另外,有时使用JPA.em("default")代替JPA.em().
and maybe if everything is ok with persistence.xml and classes and tables and java annotations and you clean everything and restart and added @Transactional everywhere you could almost get no errors. Also, sometimes use JPA.em("default") instead of JPA.em().
这篇关于错误:RuntimeException:没有为名称配置JPA EntityManagerFactory [默认]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!