Hibernate Postgresql布尔问题

时间:2016-04-01 12:54:15

标签: java hibernate postgresql

我有布尔字段的对象,如

@Entity

@Table(name = "USERS")
public class User {

    @Id
    @GeneratedValue
    @Column(name = "ID")
    private Integer id;

    @Column(name = "ACTIVE")
    private Boolean active = true;
}

AND查询创建

CREATE TABLE IF NOT EXISTS USERS(
   ID  SERIAL PRIMARY KEY,
   ACTIVE SMALLINT ,
   LOGIN  CHAR(255) NOT NULL,
   NAME   CHAR(255) NOT NULL,
   PASSWORD CHAR(255) NOT NULL,
   ROLE INTEGER NOT NULL REFERENCES ROLE(ID)
);

当我尝试获取用户对象时,我有下一个异常ERROR:operator不存在:smallint = boolean

2 个答案:

答案 0 :(得分:3)

在PostgreSQL中,SMALLINT映射到ShortBOOLEAN映射到Boolean(因此得名)。

您可以决定是更改班级还是表格。

答案 1 :(得分:2)

尝试添加:

import 'dart:math';
import 'package:flutter/material.dart';
import 'dart:async';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Reaktionstest',
      theme: ThemeData(
        primarySwatch: Colors.yellow,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyHomePage(title: 'Reaktionsspiel'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final List<String> zeilen = ['1', '2','3','4','5','6','7','8','9','10'];
  int _counter = 10;
  var startcolor = Colors.red;
  Timer _timer;
  var hintergrundFarbe = Colors.transparent;
  var wert = 0;
  var zufallsButtonFarbe = Colors.blue;
  int _zufallsButton = 0;
  int _treffer = -1;
  bool gestartet = false;
  bool ende = true;
  bool vorbei = false;
  double bildschirmbreite = 0;
  double bildschirmhoehe = 0;
  double dotDurchmesser = 0;
  int dotZeilen = 0;

  int buttongedrueckt(int welcherbutton) {
    if (ende == false) {
      _treffer = -1;
    }
    ende = true;
    if (gestartet == false) {
      gestartet = true;
      _timer = Timer.periodic(Duration(seconds: 1), (timer) {
        setState(() {
          _counter--;
          startcolor = Colors.green;
          if (_counter < 1) {
            _timer.cancel();
            _counter = 10;
            _zufallsButton = 0;
            startcolor = Colors.red;
            vorbei = true;
            Future.delayed(Duration(milliseconds: 1500), () {
              gestartet = false;
              ende = false;
              vorbei = false;
            });
          }
        });
      });
    }
    if (vorbei == false) {
      if (_zufallsButton == 0 || welcherbutton == _zufallsButton) {
        if (_counter < 1) {
        } else {
          _treffer = _treffer + 1;
        }
        Random random = new Random();
        _zufallsButton = random.nextInt(70) + 1;
        setState(() {
          return _Singlerow(_zufallsButton.toString());
        });
      }
    }
  }

  int dotZeilenBerechnen() {
    bildschirmbreite = MediaQuery.of(context).size.width;
    var padding = MediaQuery.of(context).padding;
    bildschirmhoehe =
        MediaQuery.of(context).size.height - padding.top - padding.bottom;
    dotDurchmesser = bildschirmbreite / 7;
    dotZeilen = ((bildschirmhoehe - 88) / dotDurchmesser).toInt();
    return dotZeilen;
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        body: SafeArea(
            child: Container(
      child: Column(
        children: <Widget>[
          Container(
            width: double.infinity,
            alignment: Alignment.centerRight,
            color: startcolor,
            padding: EdgeInsets.symmetric(vertical: 24.0, horizontal: 12.0),                           
            child: Text('$_counter' "                  /" '$_treffer',
                style: TextStyle(fontSize: 40.0, fontWeight: FontWeight.bold)),
          ),
          Expanded(
            child: SizedBox(
              child:
                ListView.builder(
                  itemCount: zeilen.length,
                  itemBuilder: (context, i) {
                    //zeilen is rows in english
                    return _Singlerow(zeilen[i]);
                    
                  },
                )
            )
          ),
        ],
      ),
    )));
  }
}

class Singlerow extends StatefulWidget {
  Singlerow({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _Singlerow createState() => _Singlerow('');
}


class _Singlerow extends State<Singlerow> {
  final String title;
  _Singlerow(this.title);
  final Color hintergrundFarbe = Colors.transparent;
  final Color zufallsButtonFarbe = Colors.blue;
  int _zufallsButton = 14;
  @override
  Widget build(BuildContext context) {
    return Container(child: 

        Row(children: <Widget>[
        
         Expanded(
            child: FloatingActionButton(
          onPressed: () =>
              _MyHomePageState().buttongedrueckt(int.parse(title) * 7 - 6),
          backgroundColor: _zufallsButton.toInt() == int.parse(title) * 7 - 6
              ? zufallsButtonFarbe
              : hintergrundFarbe,
        )),
         Expanded(
            child: FloatingActionButton(
          onPressed: () =>
              _MyHomePageState().buttongedrueckt(int.parse(title) * 7 - 5),
          backgroundColor: _zufallsButton.toInt() == int.parse(title) * 7 - 5
              ? zufallsButtonFarbe
              : hintergrundFarbe,
        )),
        Expanded(
            child: FloatingActionButton(
          onPressed: () =>
              _MyHomePageState().buttongedrueckt(int.parse(title) * 7 - 4),
          backgroundColor: _zufallsButton.toInt() == int.parse(title) * 7 - 4
              ? zufallsButtonFarbe
              : hintergrundFarbe,
        )),
        Expanded(
            child: FloatingActionButton(
          onPressed: () =>
              _MyHomePageState().buttongedrueckt(int.parse(title) * 7 - 3),
          backgroundColor: _zufallsButton.toInt() == int.parse(title) * 7 - 3
              ? zufallsButtonFarbe
              : hintergrundFarbe,
        )),
        Expanded(
            child: FloatingActionButton(
          onPressed: () =>
              _MyHomePageState().buttongedrueckt(int.parse(title) * 7 - 2),
          backgroundColor: _zufallsButton.toInt() == int.parse(title) * 7 - 2
              ? zufallsButtonFarbe
              : hintergrundFarbe,
    )),
    


        Expanded(
            child: FloatingActionButton(
          onPressed: () =>
              _MyHomePageState().buttongedrueckt(int.parse(title) * 7 - 1),
          backgroundColor: _zufallsButton.toInt() == int.parse(title) * 7 - 1
              ? zufallsButtonFarbe
              : hintergrundFarbe,
        )),
        Expanded(
            child: FloatingActionButton(
          onPressed: () =>
              _MyHomePageState().buttongedrueckt(int.parse(title) * 7),
          backgroundColor: _zufallsButton.toInt() == int.parse(title) * 7
              ? zufallsButtonFarbe
              : hintergrundFarbe,
        )), 
      ]),
        );
  }
}