我添加了一种方式来向所有者收取访问费用,并标记已经支付了历史悠久的Spring Pet Clinic项目的访问次数。现在,我希望列出在其帐户中过期的所有者列表。我遇到的问题是所有者表:
CREATE TABLE owners (
id INTEGER IDENTITY PRIMARY KEY,
first_name VARCHAR(30),
last_name VARCHAR_IGNORECASE(30),
address VARCHAR(255),
city VARCHAR(80),
telephone VARCHAR(20)
);
与访问表无关:
CREATE TABLE visits (
id INTEGER IDENTITY PRIMARY KEY,
pet_id INTEGER NOT NULL,
visit_date DATE,
description VARCHAR(255),
price NUMERIC(5,2),
payment_due DATE,
billed BOOLEAN,
paid BOOLEAN
);
保留价格和截止日期。如果我可以使用@Formula
注释,我想我会全部设置,但当我尝试从Owner
类运行SQL查询时如下:
@Formula("(SELECT MAX(price) FROM visits)")
private int balance;
我收到错误:
WARN SqlExceptionHelper - SQL Error: -5501, SQLState: 42501
ERROR SqlExceptionHelper - user lacks privilege or object not found: OWNER0_.PRICE
WARN warn - Handler execution resulted in exception: org.springframework.dao.InvalidDataAccessResourceUsageException: could not prepare statement;...
我想做一个复杂的SQL语句,但我甚至无法让上面的简单语句工作。任何帮助@Function注释工作(或替代解决方案)都会有所帮助。
答案 0 :(得分:1)
您可能需要指定price
的来源,例如@Formula("(SELECT MAX(v.price) FROM visits v)")