play 2.3.8 프레임 워크를 사용하여 API를 만들고 mariaDB에 액세스합니다. mariaDB 콘솔에서 쿼리를 실행하면 정상적으로 작동하지만 재생에서 실행하면 RECEPTORS.r_name 필드를 사용할 수 없다는 오류가 발생하여 사실이 아닙니다.com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException : '필드 목록'에 'RECEPTORS.r_name'열이 없습니다.
내 코드는 내가 mariaDB 콘솔에서 실행
package models.dao
import anorm._
import models.Profile
import play.api.db.DB
import play.api.Play.current
object ProfileDAO {
def index(r_name: String): List[Profile] = {
DB.withConnection { implicit c =>
val results = SQL(
"""
| SELECT `RECEPTORS.r_name`,`RECEPTORS.pdbCode`, `LIGANDS.l_id`, `LIGANDS.l_score`
| FROM `RECEPTORS`
| INNER JOIN `LIGANDS`
| WHERE `RECEPTORS.r_name`={r_name};
""".stripMargin).on(
"r_name" -> r_name
).apply()
results.map { row =>
Profile(row[String]("r_name"), row[String]("pdbCode"),row[String]("l_id"),row[Double]("l_score"))
}.force.toList
}
}
}
쿼리
을 다음과 같이 재생 2.3.8 실행SELECT RECEPTORS.r_name, pdbCode, l_id, l_score FROM RECEPTORS INNER JOIN LIGANDS WHERE RECEPTORS.r_name="receptor";
오류입니다입니다
laeeq @ optiplex : ~/Desktop/Backup/Project5/cpvsAPI $ sbt -jvm-debug 9999 주소에서 교통 dt_socket 듣기 : 9999 [정보] /home/laeeq/Desktop/Backup/Project5에서 프로젝트 정의를로드하고 있습니다./home/laeeq/Desktop/Backup/Project5/cpvsAPI /) [info] 업데이트 {파일 :/home/laeeq/Desktop/Backup/cpvsAPI/project [정보] 현재 프로젝트를 cpvsAPI로 설정하십시오 (빌드 파일 : Project5/cpvsAPI /} root ... [정보] jline # jline; 2.11 해결 중 ... [정보] 업데이트 완료.
--- --- (응용 프로그램, 자동 재로드를 실행하는 활성화)
[정보]를 플레이-/0에 HTTP 듣기 : 0 : 0 : 0 : 0 : 0 : 0 : 0 :
9000 (서버가 ... 중지하고 다시 콘솔로 이동 Ctrl 키 + D를 사용하여 시작)
SLF4J : 초기화 단계 : 대체 로거의 다음 세트 SLF4J 읽혔 수 있습니다. 이 SLF4J 단계에서 로깅 호출이 허용되지 않았습니다. 그러나 후속 로깅을 으로 호출하면 SLF4J : 로거가 정상적으로 작동합니다. SLF4J :도 참조 http://www.slf4j.org/codes.html#substituteLogger SLF4J : org.webjars.WebJarExtractor [정보] 1 스칼라 소스 에 /home/laeeq/Desktop/Backup/Project5/cpvsAPI/target/scala-2.11/classes 컴파일 ... [정보] (데브) [오류] 응용 프로그램 응용 프로그램 시작 - -
3306/db_profile [정보] 재생 : // localhost를가한다 : mysql : JDBC에 연결된 데이터베이스 [설정] - 플레이! @ 766oc7b8l - 내부 서버 오류 (GET)/정보/수용체] 대 ->
play.api.Application $$ 아논 $ 1 실행 예외 [MySQLSyntaxErrorException : 알 열 'RECEPTORS.r_name'에서 'field list']] at play.api.Application $ class.handleError (Application.scala : 296) ~ [play_2.11-2.3.8.jar : 2.3.8] at play.api.DefaultApplication.handleError (Application.scala : 402) 에서 [play_2.11-2.3.8.jar : 2.3.8] play.core.server.netty.PlayDefaultUpstreamHandler $$ anonfun $ 14 $$ anonfun $ apply $ 1.applyOrElse (PlayDefaultUpstreamHandler.scala : 205) [play_2.11-2.3.8.jar : 2.3.8] at play.co re.server.netty.PlayDefaultUpstreamHandler $$ anonfun $ 14 $$ anonfun $ apply $ 1.applyOrElse (PlayDefaultUpstreamHandler.scala : 202) [play_2.11-2.3.8.jar : 2.3.8 scala.runtime.AbstractPartialFunction.apply (AbstractPartialFunction.scala 36)에 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException : : NA에 의한] [스칼라 라이브러리 2.11.1.jar 알 [: 1.8.0_151 NA] sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:62)에서 sun.reflect.NativeConstructorAccessorImpl.newInstance0 (원시 메소드) ~ 에서 '필드 목록'에 열 'RECEPTORS.r_name' ~ [NA : 1.8.0_151] sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:45) 에서 ~ [NA : 1.8.0_151]에서 java.lang.reflect.Constructor.newInstance (Constructor.java:423),210 ~ [NA : 1.8.0_151] com.mysql.jdbc.Util.handleNewInstance (Util.java:411) ~ [MySQL을 커넥터 자바 5.1.18.jar : NA]에서
감사합니다. 귀하가 제안한대로 두 가지 방법으로 효과가있었습니다. 결국 저는 모든 역 추적을 제거했습니다. – Laeeq