Backgound: я использую JPA (Hibernate Impl) + Spring < /strong>
У меня есть две таблицы, первый в порядке, у него есть один первичный ключ, и он работает даже с полей java.util.date. Другой имеет 3 параметра в первичном ключе (это впервые, когда я работаю с ним): < /p>
PRIMARY KEY (`id_room`,`id_hotel`,`day`),
< /code>
Полная схема: < /p>
CREATE TABLE `hotels` (
`id_room` int(11) NOT NULL DEFAULT '0',
`id_hotel` int(11) NOT NULL DEFAULT '0',
`day` date NOT NULL,
PRIMARY KEY (`id_room`,`id_hotel`,`day`),
KEY `id_hotel` (`id_hotel`,`day`),
KEY `day` (`day`),
KEY `day-hotel` (`day`,`id_hotel`),
KEY `hotel` (`id_hotel`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
< /code>
Поэтому я добавил код в свою сущность: < /p>
@Entity @IdClass(HotelId.class)
@Table(name="hotels")
public class Hotels implements Serializable {
private static final Long serialVersionUID = 1L;
@Id
@Column(name="id_room")
private int roomId;
@Id
@Column(name="id_hotel")
private int hotelId;
@Id
@Temporal(TemporalType.DATE)
private Date day;
....
< /code>
hotelid.class
public class HotelId implements Serializable {
private int roomId;
private int hotelId;
private Date day;
public HotelId() {
}
public HotelId(int roomId, int hotelId, Date day) {
this.roomId = roomId;
this.hotelId = hotelId;
this.day = day;
}
public int getRoomId() {
return roomId;
}
public int getHotelId() {
return hotelId;
}
public Date getDay() {
return day;
}
}
< /code>
С этой сущностью я застрял в течение долгого времени: < /p>
Я провел почти весь день сегодня для этой проблемы.
У меня есть база данных с столбцом даты в формате (Yyyy-mm-dd).
У меня также есть класс Entity в проекте с Java. Выберите: < /p>
TypedQuery query = em.createQuery("Select h FROM Hotels h where h.roomId=:roomId and h.hotelId=:hotelId and h.day=:day", Hotels.class);
query.setParameter("roomId", roomId);
query.setParameter("hotelId", hotelId);
query.setParameter("day", date);
< /code>
Это говорит, что нет данных < /p>
Теперь я изменяю поле даты с java.util.date для строки и изменения моего запроса: < /p>
TypedQuery query = em.createQuery("Select h FROM Hotels h where h.roomId=:roomId and h.hotelId=:hotelId and h.day=:day", Hotels.class);
query.setParameter("roomId", roomId);
query.setParameter("hotelId", hotelId);
query.setParameter("day", new SimpleDateFormat("yyyy-mm-dd").format(date));
< /code>
Он находит данные. < /p>
Вопрос в том, как отправить дату (java.util.date) в mysql db и вернуть информацию?@Entity
@Table(name="hotels")
public class Hotels implements Serializable {
private static final Long serialVersionUID = 1L;
@Id
private int id;
@Column(name="id_room")
private int roomId;
@Column(name="id_hotel")
private int hotelId;
private java.sql.Date day;
....
}
< /code>
запрос: < /p>
java.sql.Date sqlDate = new java.sql.Date(day.getTime());
TypedQuery query = em.createQuery("Select h FROM Hotels h where h.roomId=:roomId and h.hotelId=:hotelId and h.day=:day", Hotels.class);
query.setParameter("roomId", roomId);
query.setParameter("hotelId", hotelId);
query.setParameter("day", sqlDate);
Подробнее здесь: https://stackoverflow.com/questions/272 ... ty-manager
Запрос с датой с использованием менеджера объекта ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1759421325
Anonymous
[b] Backgound: я использую JPA (Hibernate Impl) + Spring < /strong>
У меня есть две таблицы, первый в порядке, у него есть один первичный ключ, и он работает даже с полей java.util.date. Другой имеет 3 параметра в первичном ключе (это впервые, когда я работаю с ним): < /p>
PRIMARY KEY (`id_room`,`id_hotel`,`day`),
< /code>
Полная схема: < /p>
CREATE TABLE `hotels` (
`id_room` int(11) NOT NULL DEFAULT '0',
`id_hotel` int(11) NOT NULL DEFAULT '0',
`day` date NOT NULL,
PRIMARY KEY (`id_room`,`id_hotel`,`day`),
KEY `id_hotel` (`id_hotel`,`day`),
KEY `day` (`day`),
KEY `day-hotel` (`day`,`id_hotel`),
KEY `hotel` (`id_hotel`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
< /code>
Поэтому я добавил код в свою сущность: < /p>
@Entity @IdClass(HotelId.class)
@Table(name="hotels")
public class Hotels implements Serializable {
private static final Long serialVersionUID = 1L;
@Id
@Column(name="id_room")
private int roomId;
@Id
@Column(name="id_hotel")
private int hotelId;
@Id
@Temporal(TemporalType.DATE)
private Date day;
....
< /code>
hotelid.class[/b]
public class HotelId implements Serializable {
private int roomId;
private int hotelId;
private Date day;
public HotelId() {
}
public HotelId(int roomId, int hotelId, Date day) {
this.roomId = roomId;
this.hotelId = hotelId;
this.day = day;
}
public int getRoomId() {
return roomId;
}
public int getHotelId() {
return hotelId;
}
public Date getDay() {
return day;
}
}
< /code>
С этой сущностью я застрял в течение долгого времени: < /p>
Я провел почти весь день сегодня для этой проблемы.
У меня есть база данных с столбцом даты в формате (Yyyy-mm-dd).
У меня также есть класс Entity в проекте с Java. Выберите: < /p>
TypedQuery query = em.createQuery("Select h FROM Hotels h where h.roomId=:roomId and h.hotelId=:hotelId and h.day=:day", Hotels.class);
query.setParameter("roomId", roomId);
query.setParameter("hotelId", hotelId);
query.setParameter("day", date);
< /code>
Это говорит, что нет данных < /p>
Теперь я изменяю поле даты с java.util.date для строки и изменения моего запроса: < /p>
TypedQuery query = em.createQuery("Select h FROM Hotels h where h.roomId=:roomId and h.hotelId=:hotelId and h.day=:day", Hotels.class);
query.setParameter("roomId", roomId);
query.setParameter("hotelId", hotelId);
query.setParameter("day", new SimpleDateFormat("yyyy-mm-dd").format(date));
< /code>
Он находит данные. < /p>
Вопрос в том, как отправить дату (java.util.date) в mysql db и вернуть информацию?@Entity
@Table(name="hotels")
public class Hotels implements Serializable {
private static final Long serialVersionUID = 1L;
@Id
private int id;
@Column(name="id_room")
private int roomId;
@Column(name="id_hotel")
private int hotelId;
private java.sql.Date day;
....
}
< /code>
запрос: < /p>
java.sql.Date sqlDate = new java.sql.Date(day.getTime());
TypedQuery query = em.createQuery("Select h FROM Hotels h where h.roomId=:roomId and h.hotelId=:hotelId and h.day=:day", Hotels.class);
query.setParameter("roomId", roomId);
query.setParameter("hotelId", hotelId);
query.setParameter("day", sqlDate);
Подробнее здесь: [url]https://stackoverflow.com/questions/27250720/query-with-date-using-entity-manager[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия