我在连接SQL数据库时遇到问题.每当我尝试连接到SQL服务器时,我都会收到以下错误;
Caused by: org.hibernate.exception.JDBCConnectionException: Error calling Driver#connect
at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:132)
at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator$1$1.convert(BasicConnectionCreator.java:118)
at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.convertSqlException(BasicConnectionCreator.java:140)
at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:58)
at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.createConnection(BasicConnectionCreator.java:75)
at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:106)
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:111)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:234)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:206)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.buildJdbcConnectionAccess(JdbcServicesImpl.java:260)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:94)
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:111)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:234)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:206)
at org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1887)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1845)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:857)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:425)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:849)
at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:75)
... 143 more
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "SQL Server did not return a …Run Code Online (Sandbox Code Playgroud) 我试图用距离计算给定的纬度/长度,并且只返回落在该圆距离的行(数据库具有纬度/长度坐标).我不知道的是我会怎么做.我目前正在使用Native SQL,并且使用带有计算此值的hasrsine公式的纯文本,如果我是正确的,则无法使用CriteriaBuilder执行hasrsine公式.但是我希望使用CriteriaBuilder获得相同的结果.我已经尝试过使用hibernate-spatial依赖,但我并没有像我想要的那样让它工作.我也遵循过这样的教程.
https://docs.jboss.org/hibernate/search/4.2/reference/en-US/html/spatial.html
我使用的数据库是MySQL.
Hibernate版本4.3.10.
此教程也没有让我走得太远使用JPA Criteria Api和hibernate spatial 4
那么我将如何使用具有给定纬度/长度和距离的MySQL构建CriteriaBuilder查询,并仅检索落在该区域中的行,将它们与存储在数据库中的纬度/经度坐标进行比较.
我目前使用CriteriaBuilder获得hibernate的双重结果.
我有一个存储事件ID的表和一个存储多个具有ID到另一个表的值的连接表.例如;
事件
ID ....
---------
1123
1124
1125
Run Code Online (Sandbox Code Playgroud)
加入表
ID event_id tag_id
----------------------
1 1124 2
2 1124 3
3 1123 6
4 1123 7
Run Code Online (Sandbox Code Playgroud)
标签
ID tag
---------
1 Dance
2 Hiphop
...
Run Code Online (Sandbox Code Playgroud)
这显然会导致双重结果.例如.
eventID ... tag_id tag
--------------------
1124 2 Hiphop
1124 3 Dance
Run Code Online (Sandbox Code Playgroud)
是否可以在hibernate的CriteriaBuilder中获得这样的结果集;
eventID ... tag_id tag
--------------------
1124 2,3 Hiphop, Dance
Run Code Online (Sandbox Code Playgroud)
我在SQL服务器本身看到过多个解决方案,但我找不到使用hibernate的CriteriaBuilder.
我正在尝试读取带有 JSON 数据的简单请求正文。
请求正文:
[
{
...data
},
{
...data
}
]
Run Code Online (Sandbox Code Playgroud)
当我尝试时(在EventResource)
def on_post(self, req, resp):
print(req.stream.read())
Run Code Online (Sandbox Code Playgroud)
以下是登录到控制台的信息:b''
我不知道我做错了什么,也不知道为什么它不显示我的身体数据。我在执行此操作时看到的每个示例实际上都会记录数据而不是我得到的数据。
requirements.txt(可能有些断章取义,但为了确定起见,我添加了完整列表。)
astroid==1.5.3
bson==0.5.0
cffi==1.11.2
click==6.7
falcon==1.4.1
falcon-auth==1.1.0
falcon-jsonify==0.1.1
Flask==0.12.2
greenlet==0.4.12
gunicorn==19.7.1
isort==4.2.15
itsdangerous==0.24
Jinja2==2.10
lazy-object-proxy==1.3.1
MarkupSafe==1.0
mccabe==0.6.1
mimeparse==0.1.3
mongoengine==0.15.0
pycparser==2.18
PyJWT==1.5.3
pylint==1.7.4
pymongo==3.5.1
python-mimeparse==1.6.0
pytz==2017.3
readline==6.2.4.1
six==1.11.0
Werkzeug==0.12.2
wrapt==1.10.11
Run Code Online (Sandbox Code Playgroud)
应用程序.py
api = falcon.API(middleware=[
falcon_jsonify.Middleware(help_messages=settings.DEBUG)
])
Run Code Online (Sandbox Code Playgroud)
路线.py
from app import api
from resources.event import EventResource
from resources.venue import VenueResource
# EventResources
api.add_route('/api/event', EventResource())
api.add_route('/api/event/{event_id}', EventResource())
api.add_route('/api/venue/{venue_id}/events', EventResource())
# …Run Code Online (Sandbox Code Playgroud) 我正在尝试更改表,并尝试将lat和long值添加到数据库中.lat做得很好并且被添加,但是当我尝试添加长列时,MySQL会使用完全相同的查询引发错误.
lat的ALTER TABLE:
ALTER TABLE region ADD lat varchar(255) DEFAULT 58.388910;
Run Code Online (Sandbox Code Playgroud)
ALTER TABLE for long:
ALTER TABLE region ADD long varchar(255) DEFAULT 3.666819;
Run Code Online (Sandbox Code Playgroud)
错误1064(42000):您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便在第1行的'long varchar(255)'附近使用正确的语法
为什么添加lat列没问题,但是长的是?我确实需要这个名字long.