私は、対応するゲッター/セッターメソッドを備えた「Scholar」と呼ばれる非常に単純なモデルを持っています。また、入力された名前または姓に基づいてリストを取得するためのメソッド findByFullName(String name, String surname) も 1 つあります。
@Entity
@Table(name="scholar")
public class Scholar extends Model {
@Id
@Column(name = "student_number")
private long studentNumber;
@Column(name = "surname")
private String surname;
@Column(name = "name")
private String name;
私のfindByFullNameにはメソッドがあります:
public static List<Scholar> findByFullName(String name, String surname) {
List<Scholar> returned = JPA.em().createQuery("from Scholar s where s.surname=?")
.setParameter(1, surname).getResultList();
結果の Scholar リストには、studentNumber のみを持つ Scholar オブジェクトが含まれます。Scholar テーブルに両方の列のデータがある場合でも、名前と姓は null を返します。すなわち
returned.get(0).getStudentNumber returns a value
returned.get(0).getName() returns null
returned.get(0).getSurname() returns null
例外トレース:
リクエスト [POST /search] の内部サーバー エラー ->
play.core.ActionInvoker$$anonfun$receive$1$$anon$1: Execution exception [[NullPo
interException: null]]
at play.core.ActionInvoker$$anonfun$receive$1.apply(Invoker.scala:134) [
play_2.9.1.jar:2.0.3]
at play.core.ActionInvoker$$anonfun$receive$1.apply(Invoker.scala:115) [
play_2.9.1.jar:2.0.3]
at akka.actor.Actor$class.apply(Actor.scala:318) [akka-actor.jar:2.0.2]
at play.core.ActionInvoker.apply(Invoker.scala:113) [play_2.9.1.jar:2.0.3]
at akka.actor.ActorCell.invoke(ActorCell.scala:626) [akka-actor.jar:2.0.2]
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:197) [akka-actor.jar:2.0.2]
Caused by: java.lang.NullPointerException: null
at models.Scholar._ebean_get_surname(Scholar.java:4) ~[classes/:na]
at models.Scholar.getSurname(Scholar.java:89) ~[classes/:na]
at models.Scholar.findbyIdOrNames(Scholar.java:55) ~[classes/:na]
at controllers.Search.findScholar(Search.java:30) ~[classes/:2.0.3]
at Routes$$anonfun$routes$1$$anonfun$apply$11$$anonfun$apply$12.apply(ro
utes_routing.scala:92) ~[classes/:na]
at Routes$$anonfun$routes$1$$anonfun$apply$11$$anonfun$apply$12.apply(ro
utes_routing.scala:92) ~[classes/:na]
私のpersistence.xmlは次のようになります:
<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.MySQLDialect"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
</persistence>
私の Application.conf ファイルは次のようになります。
db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost/DBName"
db.default.user=user
db.default.password=password
jpa.default=defaultPersistenceUnit
db.default.jndiName=DefaultD`
すべての Scholar プロパティを取得したいと考えています。学生番号、名前、姓 助けてください、文字通り先に進むことができません